2015-12-31 8 views
0

Итак, я рассмотрел большинство вопросов по этой теме, но у меня все еще возникают проблемы. Я не могу переписать любые URL-адреса, используя htaccess.Включить mod_rewrite Apache 2.4 на Ubuntu 14.04

Детали: Использование Apache 2.4 и Ubuntu 14.04 У меня есть mod_rewrite включен, как можно видеть из следующих двух частей информации:

$: apachectl -M 
Loaded Modules: 
.... 
rewrite_module (shared) 
.... 
$: ls /etc/apache2/mods-enabled/ 
.... rewrite.load .... 

Я попытался перезапустить Apache, используя следующие три метода:

$: service apache2 restart 
$: apachectl restart 
$: apachectl graceful 

И ничего не работает. Для того, чтобы полностью проверить вещи, я добавил уровень войти /etc/apache2/apache2.conf следующим образом:

LogLevel notice rewrite:trace8 

Что, если я правильно понял означает, что почти вся информация о переписывании должен идти в мой журнал ошибок , НО я не получаю никакой информации журнала.

Наконец, часть переписана в моей .htaccess выглядит следующим образом:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ 
RewriteRule ^(.*)$ http://www2.%{HTTP_HOST}/$1 [L,R=301] 

Я поставил WWW2 вместо WWW, потому что по какой-то причине это уже перенаправляет website.com к www.website.com поэтому я задаваясь вопросом, автоматически ли это браузер. Как ни странно, он также автоматически меняет website.com/index.php на www.website.com

Есть ли что-нибудь, что я могу потерять, что может быть причиной этого? Кажется, что это что-то переписывает (или это браузер делает что-то), но когда я пытаюсь переписать его на плохой URL-адрес, чтобы он терпел неудачу, он не терпит неудачу и вместо этого переходит к правильному URL-адресу.

Любые мысли?


Редактировать забыл включить, что я следующий в моем каталоге:.

<Directory /> 
     Options FollowSymLinks 
     AllowOverride None 
     Require all denied 
</Directory> 

<Directory /var/www/> 
     Options Indexes FollowSymLinks 
     AllowOverride All 
     Require all granted 
</Directory> 

Так что я есть AllowOverride установлен Все для каталога, что все живет в

+0

Вы включили директиву AllowOverride в своем целевом каталоге? Кстати, эти нечетные переадресации могут быть кэшированы в вашем браузере, очистить историю просмотра/кеш. –

+0

Забыл добавить это, но да, у меня было это в моем apache2.conf file Я обновил билет в разделе моего каталога. –

ответ

-2

Я предполагаю, что вы хотите направить URL-адреса www.

Теперь, если вы используете только один домен (например: example.com), попробуйте:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^example\.com$ 
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301] 

Если у вас есть несколько доменов, там, попробуйте:

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^[^\.]+\.[^\.]+$ 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301] 

Обратите внимание, что этот не будет соответствовать третьим (или более) уровням доменов. Чтобы справиться с этим, подумайте об использовании RewriteCond %{HTTP_HOST} !^www\., но, опять же, следите за случаями поддоменов.

Также обратите внимание на флаг QSA в вашем RewriteRule s, возможно, вам придется его добавить.

+0

Нет, это не решает проблему. Если вы заметили мой код выше, ваш вариант «нескольких доменов» - это именно то, что у меня было. И нет, я хочу, чтобы он перенаправлялся на www2, как я заявил в своем вопросе. Он уже перенаправляет на www, я хочу, чтобы он перешел на www2, и ваш код не работает. Отсюда мой вопрос .... –