mod_rewrite与尾斜杠中断CSS/IMG/SCRIPTS路径


mod_rewrite with Trailing Slash breaks CSS/IMG/SCRIPTS paths

我试图使mod_rewrite从url的第一个子目录字符串,以创建类似的功能'jsfiddle.net保存url的类/db内。脚本可以正常工作并进行重写。

。url的

http://jsfiddle.net/RyEue/

这很好(加载所有的css,脚本等):

http://www.domain.com/787HHJ2

这是我以前用过的方法。

问题是当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有关,我已经尝试了多种方法。

p。我试过将路径设置为绝对(例如src="/img/theimage.jpg"),但没有成功。

1。确保你有css/images/js等链接到根文件夹(带斜杠):/styles/main.css

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

# 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]

3。清除浏览器缓存并重新启动(有时浏览器可能会显示缓存的页面/资源,当重写规则是固定的,这带来了很多混乱)

尝试转义

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