Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.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
.htaccess 重写规则变量为空_.htaccess_Mod Rewrite_Parameters - Fatal编程技术网

.htaccess 重写规则变量为空

.htaccess 重写规则变量为空,.htaccess,mod-rewrite,parameters,.htaccess,Mod Rewrite,Parameters,我在htaccess中有一些重写规则。它们在一台服务器上工作,但在另一台服务器上不工作。我的脚本如下(我已经注释了URL的外观): 它返回两个变量(region和town),我可以在PHP中操作它们,并给出相应的内容。我有一台Rackspace服务器,脚本工作得很好,但在另一台服务器(Freedom2surf)上,它只能工作到目前为止。它不返回变量。我得到一个空的$\u get数组 有什么想法吗?F2没有给我任何线索,只是我应该检查我的代码。但是,如果它在另一台服务器上工作,那么会有什么结果呢?

我在htaccess中有一些重写规则。它们在一台服务器上工作,但在另一台服务器上不工作。我的脚本如下(我已经注释了URL的外观):

它返回两个变量(region和town),我可以在PHP中操作它们,并给出相应的内容。我有一台Rackspace服务器,脚本工作得很好,但在另一台服务器(Freedom2surf)上,它只能工作到目前为止。它不返回变量。我得到一个空的$\u get数组


有什么想法吗?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/是错误的,它没有与之关联的重写规则,因此只会减慢第一个区域规则的速度。我建议你把它拿走。