当用户访问/user
时,他会看到自己的个人资料,但当他访问/user/[id]
时,他会看到具有指定id
的用户个人资料。但是,有人也可以键入/user/[random string]
,这会导致我的服务器上的500 error
。所以我想将任何non-numeric
请求重定向到404 page
。
以下是我的RewriteRule
s
RewriteEngine On
RewriteBase /
RewriteRule ^user/edit /edit.php
# RewriteRule ^errors/404.html /user.php?id=$([\w])
RewriteRule ^user/([\d])$ /user.php?id=$1
如果第二个评论与否,则无关紧要,任何non-numeric
query string
都会产生500 error
。
答案 0 :(得分:1)
修改规则,添加加号:
RewriteRule ^user/([\d]+)$ /user.php?id=$1 [L]
RewriteRule ^user/.+$ /errors/500.html [L]
或:
RewriteRule ^user/([0-9]+)$ /user.php?id=$1 [L]
RewriteRule ^user/.+$ /errors/500.html [L]
[L]修饰符停止解析,是第一个规则后错误500规则必须放置的原因。