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
Apache mod_重写并在URI末尾加上点_Apache_.htaccess_Mod Rewrite_Rewrite_Period - Fatal编程技术网

Apache mod_重写并在URI末尾加上点

Apache mod_重写并在URI末尾加上点,apache,.htaccess,mod-rewrite,rewrite,period,Apache,.htaccess,Mod Rewrite,Rewrite,Period,我一直在开发一个商店,它使用mod_rewrite使URI更具可读性,例如: 将改写为 我的重写规则如下: 重写规则^shop/[^?]+index.php?区域=商店和文件夹=$1[NC,QSA,L] 但是,当文件夹名称以结尾时,这会中断。点,我在测试时发现,文件夹名以etc结尾 似乎在填充$\u GET之前,所有尾随点都已完全删除。如果我在点后面加上另一个字符,没关系,如果URI以任意数量的点结尾,它们就会被删除 有没有办法阻止这种情况发生?您不需要排除?在重写规则中,因为它只在URI路径上

我一直在开发一个商店,它使用mod_rewrite使URI更具可读性,例如:

将改写为

我的重写规则如下:

重写规则^shop/[^?]+index.php?区域=商店和文件夹=$1[NC,QSA,L]

但是,当文件夹名称以结尾时,这会中断。点,我在测试时发现,文件夹名以etc结尾

似乎在填充$\u GET之前,所有尾随点都已完全删除。如果我在点后面加上另一个字符,没关系,如果URI以任意数量的点结尾,它们就会被删除


有没有办法阻止这种情况发生?

您不需要排除?在重写规则中,因为它只在URI路径上操作,没有查询字符串或锚

因此,这就足够了:

RewriteRule ^shop/(.+) index.php?area=shop&folder=$1 [NC,QSA,L]
尽管如此,这并没有改变圆点被剥离的事实

这可能是启用“多视图”的结果。此选项使Apache尝试解决URI,而不考虑扩展

因此,还要添加以下内容:

Options -Multiviews

Doh,搜索了很久没有发现这些,事实上,更多的挖掘和测试表明,这是一个Windows唯一的问题,如果有人能对此有所了解,我会很感激Hanks Poncha,这没有帮助,虽然这显然是Windows问题,它在我的linux服务器上运行良好,您可以使用找到的其中一个链接中提供的解决方案,然后在php中解析重定向URI以解决此问题。如果你关心它在windows上运行的话;不是在这个特定的实例中,但还是很高兴知道:REDIRECT_URI在我的机器上不可用,我们将进一步研究它