0

ここでmod_rewriteモジュールに問題があります。/ toronto /を実行すると、それに応じて指示されますが、末尾のスラッシュなしで/ torontoを実行すると、404が返されます。/city_nameフォルダーから読み取るには、/torontoと/toronto/の両方が必要です。末尾にスラッシュがないようにするにはどうすればよいですか。コードは次のとおりです。

RewriteBase/city_nameのRewriteEngine

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ /city_name/index.php?page=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} /([^\./]+)\.php$
RewriteCond %{DOCUMENT_ROOT}/city_name/%1.php -f
RewriteRule ^(.*)/([^\./]+)\.php$ /city_name/$2.php?page=$1 [L,QSA]

4

1 に答える 1

1
RewriteRule (.*)/$ /city_name/index.php?page=$1 [L,QSA]

このルールは、URIがスラッシュで終了する必要があることを明示的に示しているため、「toronto」はどのルールにも一致しません。スラッシュをオプションにするには、?を使用します。オペレーター:

RewriteRule (.*)/?$ /city_name/index.php?page=$1 [L,QSA]
于 2012-08-25T23:19:37.003 に答える