Php mod_用尾部斜杠重写CSS/IMG/SCRIPTS路径

Php mod_用尾部斜杠重写CSS/IMG/SCRIPTS路径,php,html,apache,mod-rewrite,Php,Html,Apache,Mod Rewrite,我试图让mod_重写url中的第一个子目录字符串,以便在类/db中创建与“jsfiddle.net保存的url”类似的功能。脚本运行良好,并进行重写 e、 g.网址的使用 http://jsfiddle.net/RyEue/ 这工作正常(加载所有css、脚本等): 这就是我在过去使用过的方法 问题在于URL结尾时使用最后一个斜杠、脚本、css和其他松散路径。 http://www.domain.com/787HHJ2/ 重写脚本: DirectoryIndex index.php index

我试图让mod_重写url中的第一个子目录字符串,以便在类/db中创建与“jsfiddle.net保存的url”类似的功能。脚本运行良好,并进行重写

e、 g.网址的使用

http://jsfiddle.net/RyEue/
这工作正常(加载所有css、脚本等):

这就是我在过去使用过的方法

问题在于URL结尾时使用最后一个斜杠、脚本、css和其他松散路径。

http://www.domain.com/787HHJ2/
重写脚本:

DirectoryIndex index.php index.html
Options +FollowSymlinks
RewriteEngine On # Turn on the rewriting engine
#RewriteBase   /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} !.
RewriteRule ^.+/?$ index.php [QSA,L]
不确定这是否与Rewritebase有关,我尝试了多种方法

顺便说一句,我尝试过将路径设置为绝对路径(例如src=“/img/theimage.jpg”),但运气不佳。

尝试转义

RewriteRule ^.+\/?$ index.php [QSA,L]

一,。确保css/images/js等链接到根文件夹(带前导斜杠):
/styles/main.css

二,。在当前规则之前添加以下规则之一:

# do not touch files with .css/.js/.jpg etc extensions
RewriteRule \.(css|js|jpg|png|gif)$ - [L]


三,。清除浏览器缓存并重新启动(在修复重写规则时,有时浏览器可能会显示缓存的页面/资源,这会带来很多混乱)。

规则正常。请打开“重写调试”(
rewriteloglevel9
)并检查“重写日志”以查看到底发生了什么。@LazyOne,您的权利。它起作用了。问题是它破坏了css、脚本和路径。我已经澄清了这个问题。问题主要在于css、脚本、图像和其他文件在使用尾随/时被破坏。你所说的“破坏”是什么意思?尝试
%{DOCUMENT\u ROOT}%{REQUEST\u URI}
而不是
%{REQUEST\u FILENAME}
。顺便说一句,什么
RewriteCond%{QUERY\u STRING}
mean——仅当查询字符串为空时?我所说的“breaks”是指像img这样的html元素在重写后不会加载。是,只有查询字符串为空。我正在尝试显示index.php及其所有元素。通过上面的回答,我能够解决这个问题。到根目录的相对路径加上设置本地虚拟主机的组合使一切都能完美地工作。
# do not touch files with .css/.js/.jpg etc extensions
RewriteRule \.(css|js|jpg|png|gif)$ - [L]
# do not touch any resources in images/css/js folders
RewriteRule ^(images|css|js)/ - [L]