【问题标题】:htaccess mod rewrite - rewrite rulehtaccess mod rewrite - 重写规则
【发布时间】:2015-07-08 07:30:49
【问题描述】:

我想就以下问题寻求帮助:例如,我有这个规则 mod_rewrite:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]

我想把网址 www.x.cz/word 改写成 www.x.cz/word.php

这可行,但在这种情况下会出现问题,如果 URL 是例如 www.x.cz/word/xxx (另一个斜杠之后不久是一些其他文本字符串)。然后出现错误 500。我该如何解决这个问题? (我希望服务器返回 404 或执行与引用 URL www.x.cz/word.php 相同的操作 - 就好像没有另一个字符串一样)。

谢谢大家的愿意。

【问题讨论】:

    标签: regex apache .htaccess mod-rewrite


    【解决方案1】:

    你可以像这样调整你的正则表达式:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^([^./]+) $1.php [L]
    

    这会将/word/xxx/word/ 都重写为/word.php

    【讨论】:

      猜你喜欢
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 2015-03-23
      • 2013-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      相关资源
      最近更新 更多