【问题标题】:.htaccess mod_rewrite trailing slash.htaccess mod_rewrite 斜杠
【发布时间】:2012-08-26 07:19:37
【问题描述】:

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

重写引擎开启 RewriteBase /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]

【问题讨论】:

    标签: php sql .htaccess mod-rewrite


    【解决方案1】:
    RewriteRule (.*)/$ /city_name/index.php?page=$1 [L,QSA]
    

    此规则明确表示 URI 必须以斜杠结尾,因此 'toronto' 不匹配任何规则。要使斜线可选,请使用 ?运营商:

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

    【讨论】:

      猜你喜欢
      • 2016-07-14
      • 1970-01-01
      • 2012-05-20
      • 1970-01-01
      • 2011-06-28
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      • 2019-04-08
      相关资源
      最近更新 更多