2013-07-14 2 views
1

Я пытаюсь написать некоторые правила перезаписи в apache2 conf, и они не работают Ниже приведен мой виртуальный блок в apache conf. Моя ОС Ubuntu 12.04 Server Editionapache2 rewrite правила не работают

DocumentRoot /var/www/xyz 

    <Directory /> 
      Options FollowSymLinks 
      AllowOverride None 
    </Directory> 
    <Directory /var/www/xyz> 
      Options Indexes FollowSymLinks MultiViews 
      #AllowOverride None 
      AllowOverride All 
      Order allow,deny 
      #Order deny,allow 
      allow from all 
    </Directory> 

У меня есть файл .htaccess с некоторыми правилами перезаписи следующим

ReWriteEngine on 
RewriteRule ^/matchV/(.*) http://host:8080/$1 
RewriteRule ^/other/(.*?)$ /httpdcontent/$1

модуль переписан включен с апача.

Может кто-нибудь сказать мне, если я что-то упустил.

Спасибо,

Sandeep

ответ

0

Прежде всего, знак доллара, кажется, отсутствует на первом правиле переписывания. Тогда я бы рекомендовал использовать [L] в ситуации «отладки». Таким образом, только одно правило должно быть исправлено в то время.

Если вам нужно проверить, как происходит переписывание, вам необходимо просмотреть файлы журнала /var/log/apache2/error.log и /var/log/apache2/access.log. Они расскажут вам, какой URL-адрес попытался обработать сервер и как это произошло. Из этого вы должны уметь видеть, чего не хватает, или что «слишком много».

Из того, что я вижу, я бы сказал, что это связано с базой переписывания. Корень вашего веб-сервера, вероятно, находится в/var/www, а каталог для виртуального хоста -/var/www/xyz. Я думаю, вы могли бы это исправить, используя что-то вроде ...

RewriteBase /xyz 

Во всяком случае, редактировать конфигурации, и не остановить проверку журналов. Оттуда вы увидите, какой URL/файл пытается выполнить сервер, и вы сможете исправить пути, которые он использует.

+0

где именно переписать базу в конфигурации? – Sandeep

+0

Это можно сделать в файле .htaccess, учитывая ваши основные настройки. –

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