Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在htaccess中,URI被认为是小写的。可能有什么问题?_Php_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

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