htaccess尾斜杠
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)$ /dir/index.php?category=$1&link=$2 [L]
RewriteCond %{REQUEST_URI} !\.[^./]+$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.mydomain.com/dir/$1/$2 [R=301,L]
我遇到了这个问题,希望有人能帮助我。htaccess尾斜杠
www.domain.com/dir/category/
效果很好,但是当涉及到第二个变量
www.domain.com/dir/category/variable/
这是行不通的,但如果我删除最后一个斜杠,它的工作原理...
编辑----------------------------
到目前为止,这工作正常。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/?$ /dir/index.php?category=$1&link=$2 [L]
RewriteCond %{REQUEST_URI} !\.[^./]+$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.omain.com/dir/$1/$2 [R=301,L]
变化
RewriteRule ^([^/]*)/([^/]*)$ /dir/index.php?category=$1&link=$2 [L]
要
RewriteRule ^([^/]*)/([^/]*)([^\.css|\.js])/?$ /dir/index.php?category=$1&link=$2$3 [NC,L]
编辑这是一个巨大的警察了,我会希望在某些时候与做的一切单行规则更新此,但现在这将工作(我的大脑不能正常工作了)。这假定你的JS位于一个名为'js'的目录中,并且CSS位于一个名为'css'的目录中。这些规则的顺序很重要!
RewriteRule ^(css|js)/(.*)$ /dir/$1/$2 [L]
RewriteRule ^([^/]*)/([^/]*)/?$ /dir/index.php?category=$1&link=$2 [L]
与CSS和JS相同的问题 – ramirez
您的js/css链接看起来像什么(src' /'href'属性的内容)? – DaveRandom
http://www.domain.com/css/style.css – ramirez
尝试通过这一个替换第一RewriteRule
:
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^([^/]*)/([^/]*)/?$ /dir/index.php?category=$1&link=$2 [L]
这明确允许尾随斜线在末端。
用于使最后一个斜杠可选。 – Cyclone
它可以工作,但CSS和JS崩溃了... – ramirez
在规则之前添加重写条件,如果请求的文件不存在,请不要重写(请参阅我的更新回答) – arnaud576875
这个htaccess在哪里?它在/ dir? – arnaud576875
是是是是 – ramirez