我有这个.htaccess
文件:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com$
RewriteRule ^ http://www.example.com%{REQUEST_URI} [R=301,L]
RewriteRule ^([^/.]+)/$ /index.php?go=$1 [L]
如果用户只输入example.com
而另一个只是用于处理包含,则有一个规则可以将www添加到域中。
现在让我们说我想访问网址anything
(或任何其他名称)。
当我输入这些网址时,他们的工作正常:
www.example.com/anything/
保持不变。完美。
www.example.com/anything
重定向到www.example.com/anything/
。完美。
example.com/anything
重定向到www.example.com/anything/
完美。
有一件事不起作用:
example.com/anything/
将网址更改为www.example.com/index.php?go=anything
但我希望它也可以重定向到www.example.com/anything/
。
是否有人知道如何更改规则以便它也可以使用?
答案 0 :(得分:1)
保持你的.htaccess像这样:
ErrorDocument 403 /index.php?go=403
ErrorDocument 404 /index.php?go=404
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^ http://www.example.com%{REQUEST_URI} [R=301,L]
RewriteRule ^([^/.]+)/$ /index.php?go=$1 [L,QSA]
RewriteCond $0 ^download/([^/.]+)/$
RewriteRule ^([^/.]+)/([^/.]+)/$ /index.php?go=dl&id=$2 [L,QSA]
RewriteCond $0 ^games/([^/.]+)/$
RewriteRule ^([^/.]+)/([^/.]+)/$ /index.php?go=games&game=$2 [L,QSA]
RewriteCond $0 ^tools/([^/.]+)/$
RewriteRule ^([^/.]+)/([^/.]+)/$ /index.php?go=tools&tool=$2 [L]
RewriteCond $0 ^misc/([^/.]+)/$
RewriteRule ^([^/.]+)/([^/.]+)/$ /index.php?go=misc&misc=$2 [L,QSA]
请记住在内部重写规则之前保留重定向规则。