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]
我遇到了这个问题,我希望有人会帮助我。
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]
答案 0 :(得分:1)
尝试用此替换第一个RewriteRule
:
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^([^/]*)/([^/]*)/?$ /dir/index.php?category=$1&link=$2 [L]
这明确允许在结尾处使用尾部斜杠。
答案 1 :(得分:0)
更改
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]