虚拟主机中的重定向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或别名重定向规则工作正常!?
帮助欣赏。
答案 0 :(得分:0)
发现了这个问题。重定向301使用mod_alias而不是mod_rewrite,并且代理匹配直接处理php文件。 解决方案是用Rewriterule重写重定向,由mod_rewrite处理,如下所示。
RewriteRule ^/myfile.php "http://www.example.com/page" [L,R=301]
希望这个帮助