0

我的根文件夹中有以下 .htaccess 规则:-

RewriteEngine On
RewriteRule ^([^/]*)$ /user.php?user=$1 [L]
RewriteRule ^project/([^/]*)$ /project.php?id=$1 [L]

所以,这基本上可以 - > http://example.com/user.php?user=stackoverflow也可以从http://example.com/stackoverflow获得,但是当我浏览http://example.com/login .php或我的任何页面,它会给出内部服务器错误 500。

当我使用http://example.com/user/stackoverflow时,一切正常

我的猜测是,URL 重写与根文件夹中的文件名冲突,如果是,我如何禁用文件名检查或任何其他更好的规则。

更新:规则[仍然不起作用]

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^([^/]*)$ /user.php?user=$1 [L]
RewriteRule ^project/([^/]*)$ /project.php?id=$1 [L]

谢谢

4

1 回答 1

0

您只需要重写不存在的路径。使用以下 .htaccess 规则

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^project/([^/]*)$ /project.php?id=$1 [L]    
RewriteRule ^([^/]*)$ /user.php?user=$1 [L]
于 2013-06-30T02:21:44.563 回答