.HTACCESS - 在没有URL查询的情况下防止404

时间:2016-05-28 20:37:56

标签: php apache .htaccess

我正在使用.htaccess为我的网络应用程序重写一些网址。当user_urls(实际上是一个URL友好的用户名)传递给它时,以下内容用于使user页面更漂亮:

RewriteRule ^user/([0-9a-zA-Z-]+) /user?url=$1 [NC,QSA]

当我输入URL http://example.com/user时,页面重定向就好了,PHP处理缺少查询字符串。但是,当服务器收到http://example.com/user/的请求时,它会返回404错误。

如何防止这种情况发生? 感谢。

2 个答案:

答案 0 :(得分:1)

通过添加规则

重定向到正确的URL
RewriteRule ^(.*)/$ /$1 [L,R=301]

或将/?附加到正则表达式。

答案 1 :(得分:1)

您可以在.htaccess中使用这些规则:

Options -MultiViews
RewriteEngine On

RewriteRule ^user/?$ user.php [NC,L]

RewriteRule ^user/([0-9a-zA-Z-]+)/?$ user.php?url=$1 [NC,QSA,L]