2015-06-17 3 views
0

CDN Мне нужно написать .htaccess правила переадресации, которые будут постоянно перенаправлять запросы на:Перенаправление не-WWW для WWW без перенаправления

example.com в www.example.com

и

example.com/stuff/anyfile.ext в www.example.com/stuff/anyfile.ext

, но без перенаправление других форм, таких как

cdn.example.com или cdn.example.com/stuff/anyfile.ext к www.example.com

У меня есть это:

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

... но не работу с ссылками на изображения. Так что:

example.com/stuff/my-image.jpg

делает не попадет на:

www.example.com/stuff/my-image.jpg

ли это невозможно?

полная ссылка .htaccess: http://pastebin.com/wCmE9zDw

+0

Вы сказали, что сделали ** не ** хотите перенаправить изображения на 'www', поэтому мой ответ должен сработать для вас. –

+0

Нет, я этого не делал. Я сказал, что просто хотел исключить запросы на 'cdn.example.com'. Я говорил, что мое примерное правило работает **, за исключением ** ссылок на изображения. – nev

+0

Прочтите мой ответ. Вот как это звучит, как вы сказали. что если он был example.com/stuff/file.jpg, то не перенаправляйте на www-версию. –

ответ

0

Используйте это правило:

RewriteEngine On 

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

Test это после того, как очистить кэш браузера.

+0

Спасибо. Это работает, за исключением того, что он не перенаправляет ссылки на изображения. Я очистил кеш браузера. – nev

+1

После дополнительного тестирования я вижу, что он работает с ссылками на изображение в другом домене - он должен быть чем-то еще ниже в моем файле .htaccess в первом домене, который конфликтует с ним. – nev

+0

Если вы редактируете ссылку под своим вопросом и предоставляете свой .htaccess, то я, вероятно, могу что-то предложить. – anubhava

1

Измените свое состояние немного. Попросите его проверить только домен, а не www. Посмотрите, работает ли это для вас.

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

Вы также можете использовать свой домен в правиле.

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

Я имел в виду, что это не работает, с моим примером кода. – nev

+0

Тогда просто удалите это условие, когда я его обновил. Не забудьте очистить кеш или попробовать в другом браузере. Если это первое правило в .htaccess, оно должно перенаправить все, поскольку это первое правило. Что произойдет, если это изображение. –

+0

Результаты те же, что я описал для anubhava - все работает так, как ожидалось, в тестовом домене, отличном от WP, но в домене WP, если ссылка связана с изображением, он не перенаправляет запрос с не-www на www , Это первое, что написано в корневом каталоге .htaccess, остальная часть которого открыта для проверки (ссылка выше), так что это озадачивает. – nev

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