Mod rewrite 如何使用mod_rewrite重定向无效URL?

Mod rewrite 如何使用mod_rewrite重定向无效URL?,mod-rewrite,Mod Rewrite,我是mod_重写正则表达式的新手。我的.htaccess文件中有以下几行: RewriteRule ^gallery/([0-9]+)/ gallery.php?id=$1 [L] RewriteRule ^gallery/ gallery.php [L] 当我打开http://127.0.0.1/gallery/一切正常,但当我打开http://127.0.0.1/gallery/some_string它会打开同一页。我怎样才能强制这些无效的URL-s进入我的404页面。我需要第二行是严格的

我是mod_重写正则表达式的新手。我的.htaccess文件中有以下几行:

RewriteRule ^gallery/([0-9]+)/ gallery.php?id=$1 [L]
RewriteRule ^gallery/ gallery.php [L]
当我打开
http://127.0.0.1/gallery/
一切正常,但当我打开
http://127.0.0.1/gallery/some_string
它会打开同一页。我怎样才能强制这些无效的URL-s进入我的404页面。我需要第二行是严格的-没有额外的字符后,最后一个斜杠和第一条规则必须继续与整数值工作

有什么办法可以做到这一点吗

RewriteRule ^gallery/ gallery.php [L]
在此规则中,模式
^gallery/
匹配以“gallery/”开头的所有字符串,包括“gallery/some_string”。要使其严格,确保它只匹配“gallery/”而不匹配其他内容,请使用$metacharacter,它表示字符串的结尾:

RewriteRule ^gallery/$ gallery.php [L]
(您可能希望通过使用?运算符(
RewriteRule^gallery/?$gallery.php[L]
)使最后一个斜杠成为可选的,以确保它也能工作——用户期望这种行为,即使它是草率的。)