0

私は mod_rewrite 正規表現が初めてです。.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 を強制的に 404 ページに移動させるにはどうすればよいですか? 2 行目は厳密にする必要があります。最後のスラッシュの後に余分な文字を入れず、最初のルールは引き続き整数値で機能する必要があります。

これを達成する方法はありますか?

4

1 に答える 1

0
RewriteRule ^gallery/ gallery.php [L]

このルールでは、パターンは^gallery/「gallery/some_string」を含め、「gallery/」で始まるすべての文字列に一致します。厳密にするには、「gallery/」のみに一致し、それ以外には一致しないようにするには、文字列の終わりを示す $ メタ文字を使用します。

RewriteRule ^gallery/$ gallery.php [L]

( http://example.com/galleryRewriteRule ^gallery/?$ gallery.php [L]も確実に機能するように、 ? 演算子 ( ) を使用して最後のスラッシュを省略可能にすることができます。ユーザーは、ずさんな動作であっても、この動作を期待しています。)

于 2012-08-26T16:39:26.747 に答える