Понимание апачских 2,4 mod_proxy_fcgi и RewriteRules в htaccess

sudo или su

8
задан 3 February 2014 в 16:20
3 ответа

Я нашел это решение, не знаю, лучший ли он, но у меня работает.

  1. Удалите строку:

     ProxyPassMatch ^ / (. * \. Php (/.*)?)$ fcgi: //127.0.0.2: 9126 / <путь> / $ 1
    
  2. Добавьте это в свою директиву:

     
     Параметры -Indexes + FollowSymLinks -ExecCGI + MultiViews
    
     AllowOverride All
    
     
     RewriteEngine On
     RewriteBase /
     RewriteOptions InheritBefore
     RewriteCond% {REQUEST_FILENAME} -f
     RewriteRule ^ ([^ \.] + \. Php) $ fcgi: //127.0.0.2: 9126 / var / www / yoursite.com / $ 1 [L, P]
     
    
     Заказать разрешить, запретить
     разрешить от всех
    
      = 2.4>
     Требовать все предоставлено
     
    
    

    Все реальные файлы php будут перенаправлены на прокси-сервер fcgi.

    И « RewriteOptions InheritBefore » Это заставляет текущую конфигурацию наследовать конфигурацию родительского объекта, но применяются до правил, указанных в дочерняя область (.htaccess в каталоге). Это единственный способ, которым я обнаружил совместимость между конфигурацией fcgi и конфигурацией клиента .htaccess.

  3. Для управления другими параметрами, которые могут понадобиться для прокси:

     
     <Прокси-сервер fcgi: //127.0.0.2: 9126>
     ProxySet timeout = 1800 disablereuse = on
     
    
    
11
ответ дан 2 December 2019 в 22:54

Переместите логику перезаписи в выражения ProxyPassMatch. Добавьте две дополнительные строки ProxyPassMatch перед строкой в ​​конфигурации вашего виртуального хоста, как показано ниже:

ProxyPassMatch ^/([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes)/.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/<path>/$2    
ProxyPassMatch ^/([_0-9a-zA-Z-]+/)?(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/<path>/$2
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/<path>/$1
0
ответ дан 2 December 2019 в 22:54

С ProxyPassMatch , .htaccess файлы игнорируются. Попробуйте вместо этого использовать FilesMatch и SetHandler , как описано здесь и здесь .

1
ответ дан 2 December 2019 в 22:54

Теги

Похожие вопросы