0

我在这里遇到了我的 mod_rewrite 模块的问题。如果我执行 /toronto/,它会相应地引导我,但是,如果我执行 /toronto 而没有尾部斜杠,它会返回 404。我需要 /toronto 和 /toronto/ 都从 /city_name 文件夹中读取。如何避免使用斜杠,这是我的代码:

RewriteBase 上的 RewriteEngine /city_name

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 回答