Apache 如何改变我的修改重写规则,使我可以实现这一点?

Apache 如何改变我的修改重写规则,使我可以实现这一点?,apache,.htaccess,mod-rewrite,url-rewriting,rewrite,Apache,.htaccess,Mod Rewrite,Url Rewriting,Rewrite,我有一个.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添加到域中,另一条规则仅用于处理包含 现在让我们假设我想访问

我有一个
.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添加到域中,另一条规则仅用于处理包含

现在让我们假设我想访问URL
任何内容
(或任何其他名称)

当我输入这些URL时,它们工作正常:

  • www.example.com/anything/
    保持不变。太好了

  • www.example.com/anything
    重定向到
    www.example.com/anything/
    。太好了

  • example.com/anything
    重定向到
    www.example.com/anything/
    Perfect

一件不起作用的事情:

  • example.com/anything/
    将URL更改为
    www.example.com/index.php?go=anything
但我希望它也重定向到
www.example.com/anything/


有人知道如何更改规则,使其也能正常工作吗?

保持.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]

记得在内部重写重定向规则之前保留重定向规则。

是真正的目录吗?@anubhava不,不一定。我只希望URL显示
www.example.com/anything/
,而不是
www.example.com/index.php?go=anything
。其中go=anything leads在index.php中定义。它可以位于目录中(例如
/anything/anything.php
),但不一定必须位于目录中。是的,我了解你的要求。但我没有看到任何规则在这里添加尾随斜杠,使
www.example.com/anything
成为
www.example.com/anything/
(其中
anything
不是目录)。如果您在.htaccess中有更多规则,请将其发布到此处。@anubhava这是我的完整原始.htaccess文件(域除外),谢谢。不幸的是,没有任何更改使用其他浏览器进行测试或清除浏览器缓存。清除了我的浏览器缓存,现在它可以工作了。非常感谢你!