Вопрос по 301 редиректу

12
Unlock
На сайте с 01.08.2004
Offline
786
1005

Есть блог, с адресом допустим site.com/blog При наборе адреса как http://www.site.com/blog редиректит на http://site.com/blog а хотелось бы чтобы на http://www.site.com/blog/ Т.е. по сути надо чтобы любой адрес без www редиректил на адрес с www. Вот содержимое файла .htaccess:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /blog/

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /blog/index.php [L]

</IfModule>

# BEGIN WordPress

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /blog/

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /blog/index.php [L]

</IfModule>

# END WordPress

Что надо дописать? Заранее спасибо за помощь.

Есть желание, - тысяча способов; нет желания, - тысяча поводов! /Петр-I/.
DoTJ
На сайте с 09.10.2005
Offline
33
#1

Редирект с site.ru на http://www.site.ru

RewriteCond %{HTTP_HOST} ^site.ru$

RewriteRule ^(.*)$ http://www.site.ru/$1 [R=permanent,L]

Всегда нужны места под статьи Также куплю ссылки с Ваших ресурсов с постоянным размещением
Unlock
На сайте с 01.08.2004
Offline
786
#2

DoTJ, это уже сделано в файле .htaccess который в корне лежит. Или надо еще и в .htaccess для это папки добавить?

AM
На сайте с 04.11.2003
Offline
57
#3
Unlock:
DoTJ, это уже сделано в файле .htaccess который в корне лежит. Или надо еще и в .htaccess для это папки добавить?

действие .htaccess распространяется на каталог в котором он лежит и на все вложенные каталоги (до конца дерева)

DoTJ
На сайте с 09.10.2005
Offline
33
#4

Unlock, да, если у Вас два файла .htaccess, то нужно прописать в обоих.

Arty.M, да, но только, если во вложенных каталогах не будет своих .htaccess.

Официальный сайт Apache об этом: http://httpd.apache.org/docs/2.2/howto/htaccess.html#how

Примерный перевод:


Если файл .htaccess расположен в корневой директории сервера, то его действия распространяется на весь сервер, кроме тех директорий, где находится другой файл .htaccess (и кроме всех папок "ниже" этой папки со вторым .htaccess).
AM
На сайте с 04.11.2003
Offline
57
#5

DoTJ,

более точный смысл

инструкции одного типа, находящиеся в .htaccess верхнего уровня, будут отвергнуты
Unlock
На сайте с 01.08.2004
Offline
786
#6

Не работает что-то... Если пишу:

RewriteCond %{HTTP_HOST} ^site.ru$

RewriteRule ^(.*)$ http://www.site.ru/$1 [R=permanent,L]

то при наборе адреса http://www.site.ru/blog редиректит на http://www.site.ru

бред какой-то... не могу понять почему так.

Unlock
На сайте с 01.08.2004
Offline
786
#7

Сорри что поднимаю тему, но может кто-нибудь все таки подскажет в чем может быть проблема?

DoTJ
На сайте с 09.10.2005
Offline
33
#8
Unlock:
не могу понять почему так.

Я как понял Вы написали эти строки в .htacess в папке /blog/?

Тогда стоит прописать:

RewriteCond %{HTTP_HOST} ^site.ru$

RewriteRule ^(.*) http://www.site.ru/blog/$1 [R=permanent,L]

У себя проверил - всё работает.

Unlock
На сайте с 01.08.2004
Offline
786
#9

Спасибо огромное! Практически рабочий вариант. Все редиректится правильно, единственное что если набрать адрес как http://site.ru/blog

То редиректит на

http://www.site.ru/blog//home/site.ru/htdocs/blog и соответственно выскакивает 404 ошибка. Почему так, вообще не могу понять. Если набрать адрес как http://www.site.ru/blog то нормально редиректит на http://www.site.ru/blog/

P.S. Еще одну проблему нашел.

Если набрать адрес как http://www.site.ru/blog то сначала редиректит на http://site.ru/blog/ и уже только потом http://www.site.ru/blog/

Так что вариант к сожалению не совсем правильный.

AM
На сайте с 04.11.2003
Offline
57
#10

Unlock, советую почистить .htaccess'ы. Несколько раз бывало, что неправильно написанная инструкция вызывала некорректную работу других.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий