Apache 2.4 ProxyPassMatch Redirect 301 выпуск - PullRequest
0 голосов
/ 02 июня 2018

перенаправление 301 в virtualhost, ни .htaccess не работает для файлов php.

Моя среда: apache 2.4 php-fpm 7.0

Моя конфигурация vhost:

<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>

Redirect 301 /file.php также находится в .htaccess, но никто не работает.Все остальные базы правил перенаправления на uri или alias работают нормально!?

Помогите оценить.

1 Ответ

0 голосов
/ 04 июня 2018

Нашел проблему.Redirect 301 использует mod_alias вместо mod_rewrite, а файлы php напрямую обрабатываются сопоставлением прокси.Решение состоит в том, чтобы переписать перенаправление с помощью Rewriterule, который будет обрабатываться mod_rewrite следующим образом.

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

Надеюсь, эта помощь

...