Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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 Mod_rewrite:有两个重写规则的奇怪行为_Php_Apache_.htaccess_Symfony_Mod Rewrite - Fatal编程技术网

Php Mod_rewrite:有两个重写规则的奇怪行为

Php Mod_rewrite:有两个重写规则的奇怪行为,php,apache,.htaccess,symfony,mod-rewrite,Php,Apache,.htaccess,Symfony,Mod Rewrite,我已配置以下规则: <IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_URI} !^/foo/bar.php RewriteCond %{HTTPS} !=on RewriteRule ^/?(.*) ht

我已配置以下规则:

 <IfModule mod_rewrite.c>
                Options -MultiViews
                RewriteEngine On

                RewriteCond %{REQUEST_URI} !^/foo/bar.php
                RewriteCond %{HTTPS} !=on
                RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

                RewriteCond %{HTTP_HOST} ^(domain.com|www.domain.com)
                RewriteCond %{REQUEST_FILENAME} !-f
                RewriteRule ^(.*)$ web/app.php [QSA,L]
            </IfModule>

选项-多视图
重新启动发动机
重写cond%{REQUEST_URI}^/foo/bar.php
重写cond%{HTTPS}=在…上
重写规则^/?(*)https://%{SERVER_NAME}/$1[R,L]
重写cond%{HTTP_HOST}^(domain.com | www.domain.com)
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$web/app.php[QSA,L]
我希望所有使用HTTP的请求都被重定向到HTTPS,但特定路径除外:/foo/bar.php

第二条规则将所有内容重定向到web/app.php脚本(Symfony2)

现在一切都正常了,只是当我查询时,我被重定向到了

如果我质疑的话,它运行得很好

这对我来说毫无意义,为什么我会被重定向到“”?我错过什么了吗


谢谢

在第一条规则中使用
REQUEST
变量,而不是
REQUEST\u URI
_REQUEST
变量表示Apache从浏览器收到的原始请求,在执行某些重写规则后不会被覆盖

Options -MultiViews
RewriteEngine On

RewriteCond %{THE_REQUEST} !/foo/bar.php
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R=302,L]

RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ web/app.php [QSA,L]

妈的,很好用,非常感谢!(也谢谢你清理了第二条规则!:D)