.htaccess 重写规则变量为空
我在htaccess中有一些重写规则。它们在一台服务器上工作,但在另一台服务器上不工作。我的脚本如下(我已经注释了URL的外观): 它返回两个变量(region和town),我可以在PHP中操作它们,并给出相应的内容。我有一台Rackspace服务器,脚本工作得很好,但在另一台服务器(Freedom2surf)上,它只能工作到目前为止。它不返回变量。我得到一个空的$\u get数组.htaccess 重写规则变量为空,.htaccess,mod-rewrite,parameters,.htaccess,Mod Rewrite,Parameters,我在htaccess中有一些重写规则。它们在一台服务器上工作,但在另一台服务器上不工作。我的脚本如下(我已经注释了URL的外观): 它返回两个变量(region和town),我可以在PHP中操作它们,并给出相应的内容。我有一台Rackspace服务器,脚本工作得很好,但在另一台服务器(Freedom2surf)上,它只能工作到目前为止。它不返回变量。我得到一个空的$\u get数组 有什么想法吗?F2没有给我任何线索,只是我应该检查我的代码。但是,如果它在另一台服务器上工作,那么会有什么结果呢?
有什么想法吗?F2没有给我任何线索,只是我应该检查我的代码。但是,如果它在另一台服务器上工作,那么会有什么结果呢?这是一个不同的Apache设置吗?我认为您可能在使用“QSA”标志,该标志将原始请求中的查询字符串附加到重定向请求中,例如:
#example.com/regions/fife/
RewriteRule ^regions/([A-Za-z0-9\-\+\']+)/?$ /regions.php?region=$1 [L,QSA]
我认为您可能在使用“QSA”标志,该标志将原始请求中的查询字符串附加到重定向请求中,例如:
#example.com/regions/fife/
RewriteRule ^regions/([A-Za-z0-9\-\+\']+)/?$ /regions.php?region=$1 [L,QSA]
这听起来像是您在这里遇到了一个mod_协商冲突,您需要关闭Multiviews。有时apache默认配置在默认情况下启用了
Multiviews
。它将查看一个请求,比如说,/regions/1234
,mod_协商将注意到有一个文件/regions.php
,并假设该请求实际上是针对该php文件的。因此,它将服务于/regions.php/1234
,并完全绕过mod_重写。您可以使用选项
将其关闭。只需将其添加到htaccess文件的顶部:
Options -Multiviews
这听起来像是您在这里遇到了一个mod_协商冲突,您需要关闭Multiviews。有时apache默认配置在默认情况下启用了
Multiviews
。它将查看一个请求,比如说,/regions/1234
,mod_协商将注意到有一个文件/regions.php
,并假设该请求实际上是针对该php文件的。因此,它将服务于/regions.php/1234
,并完全绕过mod_重写。您可以使用选项
将其关闭。只需将其添加到htaccess文件的顶部:
Options -Multiviews
您确定在新主机上启用了mod_rewrite吗?你在脚本中收到的URL是什么($\u SERVER['REQUEST\u URI'])?我的主机说他们启用了mod\u rewrite,我看到了:$\u SERVER['REQUEST\u URI']=/regions/fife/dunfermline如果它不起作用,那么我想我会看到一个404错误页面?但是它实际上把我带到regions.php,只是没有显示变量。你解决过这个问题吗?我现在有同样的一个。注意:RewriteCond%{REQUEST_URI}^/images/是错误的,它没有与之关联的重写规则,因此只会减慢第一个区域规则的速度。我建议您删除它。您确定在新主机上启用了mod_rewrite吗?你在脚本中收到的URL是什么($\u SERVER['REQUEST\u URI'])?我的主机说他们启用了mod\u rewrite,我看到了:$\u SERVER['REQUEST\u URI']=/regions/fife/dunfermline如果它不起作用,那么我想我会看到一个404错误页面?但是它实际上把我带到regions.php,只是没有显示变量。你解决过这个问题吗?我现在有同样的一个。注意:RewriteCond%{REQUEST_URI}^/images/是错误的,它没有与之关联的重写规则,因此只会减慢第一个区域规则的速度。我建议你把它拿走。