Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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_Expressionengine - Fatal编程技术网

.htaccess 简单重写规则

.htaccess 简单重写规则,.htaccess,mod-rewrite,expressionengine,.htaccess,Mod Rewrite,Expressionengine,我正在尝试编写这个简单的重写规则,但它并没有按照我希望的方式工作。我有一个url:我想重写它 以下是我的重写规则: RewriteRule ^some_city$ proprietes?city=1234 [NC,L] 在结果页面中,$\u GET['city']中没有任何内容,只有路径精确时,正则表达式才匹配some\u city,而不是fr/some\u city 您必须在规则之前添加RewriteBase,但如果您的htaccess中有其他规则,则可能会导致问题 Rewrite

我正在尝试编写这个简单的重写规则,但它并没有按照我希望的方式工作。我有一个url:我想重写它

以下是我的重写规则:

RewriteRule   ^some_city$   proprietes?city=1234  [NC,L]

在结果页面中,
$\u GET['city']

中没有任何内容,只有路径精确时,正则表达式才匹配
some\u city
,而不是
fr/some\u city

您必须在规则之前添加
RewriteBase
,但如果您的htaccess中有其他规则,则可能会导致问题

RewriteBase /fr/
RewriteRule ^some_city$ proprietes?city=1234 [NC,L]
另一个选项是重写规则以了解语言:

RewriteRule ^/(.*)/some_city$ /$1/proprietes?city=1234 [NC,L]

终于修好了!如果它能帮助其他人:


当我查看路径信息时,我注意到PHP是以CGI的形式运行的,所以在PHP.ini中添加了CGI.fix\u pathinfo=0来修复它。

感谢您的快速回复!我粘贴了url的这一部分,实际上服务器上有一个/fr和/en文件夹,其中包含它们自己的.htaccess。该代码来自/fr文件夹中的.htaccess,因此我可以正确地获取属性页,并获得搜索结果,但由于$\u get['city']中没有任何内容,我对所有的城市都有一个结果该网站是建立在ExpressionEngine上的,我用包含自己索引的文件夹来处理语言。php因此/fr有自己的index.php和.htaccess,同样的还有/enco你可以使用调试器,即xdebug,来查找
$\u服务器
变量的值(特别是PATH\u INFO和QUERY\u字符串),和
$\u GET
。如果您没有调试器的访问权限,var\u dump调试可能会在紧急情况下工作。当我在网站上搜索时,以下是值:QUERY\u STRING=city=1234 PATH\u INFO=/proprietes当我输入重写url时:QUERY\u STRING=/proprietes,并且没有PATH\u INFO变量我在临时文件夹中测试了我的规则,效果非常好。domain.com/some\u city将我重定向到test.php?city=1234,来自$\u服务器的值是正确的:QUERY\u STRING=city=1234 ExpressionEngine与此有关。。