Apache 2.4 ProxyPassMatch重定向301问题

时间:2018-06-02 11:52:00

标签: php apache redirect

虚拟主机中的重定向301和.htaccess不适用于php文件。

我的环境:  apache 2.4  php-fpm 7.0

我的虚拟主机配置:

<VirtualHost *:80>
    ServerAdmin xxx@example.com
    DocumentRoot /pathto/www/
    DirectoryIndex index.htm index.php index.html
    ServerName www.example.com

    <Directory "/pathto/www/">
        RewriteEngine on
        Redirect 301 /myfile.php "http://www.example.com/page"
        Redirect 301 /contact "http://www.example.com/contacts.htm"

        Include /pathto/www/.htaccess
    </Directory>

    ProxyPassMatch ^/(.*\.php(/.*)?)$ unix:/run/php/php7.0-fpm.sock|fcgi://localhost/pathto/www/
</VirtualHost>

重定向301 /file.php也在.htaccess中,但没人工作。 所有其他人根据uri或别名重定向规则工作正常!?

帮助欣赏。

1 个答案:

答案 0 :(得分:0)

发现了这个问题。重定向301使用mod_alias而不是mod_rewrite,并且代理匹配直接处理php文件。 解决方案是用Rewriterule重写重定向,由mod_rewrite处理,如下所示。

RewriteRule ^/myfile.php "http://www.example.com/page" [L,R=301]

希望这个帮助