Php 在htaccess中,URI被认为是小写的。可能有什么问题?
我一直在与这个问题斗争一段时间。假设我去Php 在htaccess中,URI被认为是小写的。可能有什么问题?,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我一直在与这个问题斗争一段时间。假设我去website.com/one/tWo。在PHP中,$\u服务器['REQUEST\u URI']是one/tWo。我认为这与Apache URL重写有关,所以我检查了.htaccess,删除了所有内容,只剩下: RewriteEngine On RewriteRule ^one/two http://www.gosomewhereelse.com [R=301,L] 令我惊讶的是,在尝试“一/二”时,Apache实际上将我重定向到了www.gosome
website.com/one/tWo
。在PHP中,$\u服务器['REQUEST\u URI']是one/tWo
。我认为这与Apache URL重写有关,所以我检查了.htaccess
,删除了所有内容,只剩下:
RewriteEngine On
RewriteRule ^one/two http://www.gosomewhereelse.com [R=301,L]
令我惊讶的是,在尝试“一/二”时,Apache实际上将我重定向到了www.gosomewhere.com
需要明确的是,没有从“一/二”到“一/二”的重定向。URL在地址栏中没有更改,它仍然具有大写字符,但仍与^1/2匹配
我尝试了我能想到的一切,但都找不到解决办法。这是有效的:
RewriteCond %{REQUEST_URI} ^/one/tWo$
RewriteRule ^(.*)$ http://www.gosomewhereelse.com [R=301,L]
这也适用于:
RewriteRule ^one/t[W]o http://www.gosomewhereelse.com [R=301,L]
这项工作:
RewriteCond %{REQUEST_URI} ^/one/tWo$
RewriteRule ^(.*)$ http://www.gosomewhereelse.com [R=301,L]
这也适用于:
RewriteRule ^one/t[W]o http://www.gosomewhereelse.com [R=301,L]
事实证明,它与apache或PHP无关。问题来自第三方软件。结果表明,它与apache或PHP无关。问题来自第三方软件。因为您没有使用
NC
标志,所以应该会看到这种情况。我认为这是相关的:我没有使用NC标志,所以它不应该匹配。据我所知,NC使正则表达式不区分大小写。您使用的是什么操作系统?@JamieKitson-Amazon-linuxson因为您没有使用NC
标志,它应该会看到大小写。我认为这是相关的:我没有使用NC标志,所以它不应该匹配。据我所知,NC使正则表达式不区分大小写。你使用的是什么操作系统?@JamieKitson-Amazon-Linux