И опять htaccess - склейка сайта

Для начала привожу содержимое своего htaccess:


AddDefaultCharset UTF-8
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php

<Files "plugins.dat">
order allow,deny
deny from all
</Files>


Теперь вопрос: как правильно склеить www и без-www

Добавляю вот такую конструкцию:
RewriteCond %{HTTP_HOST} ^www.mysite\.ru$ [NC]
RewriteRule ^(.*)$ http://mysite.ru/$1 [R=301,L]


Всё меняется на без-www, однако, если зайти на сайт по адресу:
www.mysite.ru/tag/Test/

то выкидывает на страницу с 404 ошибкой:
mysite.ru/index.php/Test/

В этом вся и проблема. Почему и зачем он мне tag поменял на index.php и как это исправить?

P.S. Дело не только в tag, но и в любом другом пути. Версия Livestreet — конечно же 1.0.1

11 комментариев

avatar
Я, конечно понимаю, что вопрос может показаться элементарным. Просто скопируйте то, что у вас есть в htaccess, если вы решали проблему склейки www и no-www?
avatar
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]
avatar
Вставляй сразу же после RewriteBase /
avatar
Получилось так:
AddDefaultCharset UTF-8
Options -Indexes

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


При заходе на любую страницу вроде mysite/blog/interesting/54.html выдаёт 404 not found. Работает только главная.
avatar
*mysite.ru конечно же
avatar
Ты убрал редирект любых запросов для сервера на index.php. Тебе чел ниже правильно показал.

Логика такая ты делаешь 301 редиректы, всё это будет отображаться. Потом происходит редирект для сервера, который посылает всё на index.php. Пользователи этого не видят.
avatar
AddDefaultCharset UTF-8
Options -Indexes
RewriteEngine On

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php

<Files "plugins.dat">
order allow,deny
deny from all
</Files>
avatar
Огромное спасибо!
avatar
Пожалуйста :)
avatar
не работает под 0.5.1
удалил кеш, перезагрузил вдс, почистил кукис, не работает и все.
на версии 0.4.2 прекрасно работает такое содержимое .htaccess

AddDefaultCharset UTF-8
Options -Indexes
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php

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


Нужно сделать обезательно под 0.5.1 и 1.0.1, а то как то не профисионально, кого не спроси, никто толком не знает!
avatar
все работает, смотрим как замутить — http://livestreet.ru/blog/12813.html#comment198729
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.