Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 mod_重写&;apache2不重写正斜杠_Php_Regex_.htaccess_Mod Rewrite_Apache2 - Fatal编程技术网

Php htaccess mod_重写&;apache2不重写正斜杠

Php htaccess mod_重写&;apache2不重写正斜杠,php,regex,.htaccess,mod-rewrite,apache2,Php,Regex,.htaccess,Mod Rewrite,Apache2,在我的.htaccess文件中,我使用的mod_重写在一些Apache2服务器上工作,但在其他服务器上不工作。例如,此重写适用于所有Apache2服务器: RewriteRule ^index-stormwatch.html$ index.php?action=stormwatch 但是当我在mod_重写中用正斜杠替换连字符时,如下所示 RewriteRule ^index/stormwatch.html$ index.php?action=stormwatch …一些Apache 2服

在我的.htaccess文件中,我使用的mod_重写在一些Apache2服务器上工作,但在其他服务器上不工作。例如,此重写适用于所有Apache2服务器:

RewriteRule ^index-stormwatch.html$ index.php?action=stormwatch 
但是当我在mod_重写中用正斜杠替换连字符时,如下所示

RewriteRule ^index/stormwatch.html$ index.php?action=stormwatch 
…一些Apache 2服务器会给我一个404错误(但不是全部)。我的mod_rewrite是否写得不正确,或者我是否需要编辑httpd.conf文件(或其他文件),以便apache接受正斜杠“/?所有提到的服务器都是Apache2/php5。

您喜欢这样吗:

RewriteRule ^index/stormwatch\.html$ /index.php?action=stormwatch [NC,L,QSA]

这应该会解决URI
/index/stormwatch.html

谢谢anubhava的帮助和代码。不幸的是,我使用的一台Apache2服务器(可能是其他服务器)仍然不喜欢正斜杠“/”,即使在使用改进的代码时也是如此。它很乐意重写连字符“-”,但不重写正斜杠“/”。我认为Apache配置文件中的某些内容可能导致了问题。再次感谢您的帮助。非常感谢。非常欢迎。请在ApacheConfig中启用RewriteLog,然后查看它在这种情况下的结果。我启用了RewriteLog几分钟。创建了一个带有违规url的日志,并注意到4个不同的“操作”:1.添加路径信息后缀2.每个目录前缀带3.应用模式4.传递。这是我第一次尝试创建和读取日志文件。可能需要一些时间,直到我完全理解每个动作。strip per dir前缀听起来像是不应该发生的事情。无论如何,谢谢你anubhava教我重写日志文件。我会继续学习,直到我对重写日志有了很好的理解。非常欢迎。我想提出一种提高对重写日志理解的方法。为一个工作规则生成日志,并将其与非工作规则进行比较。这听起来是非常好的建议。谢谢你教我。