【问题标题】:.htaccess file acting strangely and not working with lowercase [closed].htaccess 文件行为奇怪并且不能使用小写字母[关闭]
【发布时间】:2014-07-27 11:19:34
【问题描述】:

我的 .htaccess 文件的全部内容目前如下所示:

RewriteEngine on
RewriteRule     ^([a-z]+)/?$ index.php?page=$1      [NC]

这应该将所有看起来像http://example.com/folder/ 的网址替换为http://example.com/index.php?page=folder

如果我使用 http://example.com/FOLDER/,这可以正常工作,但当我使用 http://example.com/folder/ 时就不行 - 我只是收到一个 404 错误,说明该文件夹不存在

据我所知,由于 NC(不区分大小写)标志,这不应该发生。我还尝试用 [A-Z]、[a-zA-Z] 等替换正则表达式的 [a-z] 部分,但均无济于事

我们将不胜感激地收到任何朝着正确方向的解决方案或推动 :-)

【问题讨论】:

  • 这听起来很奇怪。我认为它一直被转发到index.php,它根据其代码逻辑抛出 404。否则,如果这是您的所有 htaccess 代码,则 /FOLDER/ 不可能匹配,而 /folder/ 不匹配 [a-z]+ 模式(即使使用 NC 标志)
  • 你能检查一下apache错误日志吗?
  • 我将代码从我的虚拟主机移到了我的 VPS 上,它在那里运行良好,所以我认为这只是虚拟主机公司正在进行的一些奇怪的配置
  • 是的,我也试过了,效果很好。尝试破坏 htaccess 文件以获取 500 错误,以确保您正在覆盖主文件。
  • ^(\w+)/?$ index.php?page=$1 可能有效。以前从未见过Mod Rewrite...

标签: regex apache .htaccess mod-rewrite rewrite


【解决方案1】:

这可能只是我的虚拟主机使用的设置存在问题 - 我现在已将整个网站永久移动到我的 VPS 上,它工作正常 - 非常感谢提供建议的人 :-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-27
    • 1970-01-01
    相关资源
    最近更新 更多