2014-10-09 2 views
1

Это мой виртуальный хост.«RewriteEngine On» в виртуальном хосте не работает

Версия: Apache/2.2.15 (Unix)

<VirtualHost *:80> 
    ServerName web1.net 
    ServerAlias www.web1.net 

    ServerAdmin [email protected] 

    DirectoryIndex index.html index.php 

    LogLevel warn 
    ErrorLog /var/log/httpd/web1.net_error_log 
    CustomLog /var/log/httpd/web1.net_access_log combined 

    DocumentRoot /web/web1.net/htdocs 

    <Directory "/web/web1.net/htdocs"> 
     Options Indexes FollowSymLinks Includes ExecCGI 
     Order allow,deny 
     Allow from all 
     AllowOverride All 

     RewriteEngine On #This is not working 
    </Directory> 

</VirtualHost> 

файл .htaccess

RewriteEngine on # It works. 
#abc5 
RewriteCond %{HTTP_HOST} ^example\.org$ [NC] 
RewriteRule .* http://www.example.com 

Когда я поставил тот же (RewriteEngine на) в файле .htaccess он начинает работать, почему я нужно потребовать, чтобы это было в .htaccess, когда оно присутствует в виртуальном хосте.

Нужны ли какие-либо изменения в конфигурации Apache?

ответ

0

В файле httaccess каждого каталога вы должны иметь RewriteEngine on, если вы хотите включить переписывание. Короче говоря:

  • RewriteEngine on от конфигурации сервера не вступает в силу для DocumentRoot/.htaccess
  • RewriteEngine on в DocumentRoot/.htaccess не вступает в силу для любого /subdir/.htaccess
+0

Я сделал эту установку ранее, работала должным образом. Я развертываю одно и то же приложение с той же конфигурацией. –

Смежные вопросы