CMS Eleanor - Поиск
Полная версия этой страницы: Официальный форум Eleanor CMS » Настройка редиректа с www на без www
Официальный форум Eleanor CMS » Для вебмастеров и владельцев сайтов » Раскрутка и продвижение сайтов
Всем привет. Вот задался парой вопросов.

1.Редирект с www на без www
Цитата
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^www\.site\.com$ [NC]
RewriteRule ^(.*)$ http://site.com/$1 [R=301,L]

Все отлично работает, но только с главной страницей (www.site.com перенаправляет на site.com).
С остальными страницами дело обстоит иначе.
при заходе по адресу www.site.com/KATEGORIYA/NAZVANIE-STRANICI
мена перенаправляет на
site.com/index.php?!KATEGORIYA/NAZVANIE-STRANICI!
Видно, что добавляется в url элементы посторонние элементы.
Я так понял тянется все это из родной записи в htaccess:
Цитата
    #Если файл - картинка. Нафик надо сообщать об этом системе... Это ж целую страницу придется генерить из-за случайной глупости, что тяжело для сервера...
    RewriteCond %{REQUEST_URI} !\.(css|js|jpe?g|gif|png|bmp)$
    RewriteRule ^(.*)$ index.php?!$1!&%{QUERY_STRING} [L]


2.Редирект с index.php и index.html на главную страницу.
Цитата
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://vkandroid.net [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://vkandroid.net [R=301,L]

при заходе по адресу site.com/index.php меня перебрасывает на site.com/
при заходе по адресу site.com/index.html меня никуда не перебрасывает. Я остаюсь на site.com/index.html

Кто смог решить эти вопросы?
з.ы.У меня немного специфическая версия елеоноры, т.к. мы с Александром модуль специальный сделали. Возможно принцип построения в нем отличается. Так что жду главного комментатора - Александра :)
Alexander
Onlink, на eleanor-cms.ru стоит такой код:
RewriteCond %{HTTP_HOST} !^eleanor\-cms\.ru$
RewriteRule ^(.*)$ http://eleanor-cms.ru/$1 [R=301,L]

Условия (и):
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
Я бы убрал они все-равно не несут никакой смысловой нагрузки.

Попробуйте воспользоваться моим советом, интересно, хоть какие-то проблемы это решит?

Цитата (Alexander @ 2013-09-19, 17:57)
Onlink, на eleanor-cms.ru стоит такой код:
RewriteCond %{HTTP_HOST} !^eleanor\-cms\.ru$
RewriteRule ^(.*)$ http://eleanor-cms.ru/$1 [R=301,L]

Условия (и):
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
Я бы убрал они все-равно не несут никакой смысловой нагрузки.

Попробуйте воспользоваться моим советом, интересно, хоть какие-то проблемы это решит?

Попробовал ваш код. Все так же, та же ошибка, что и с моим кодом. Я вот не могу понять, в чем загвостка.
По поводу:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/

Если не написать этот код, то главная будет доступна по 3 адресам:
site.com/
site.com/index.php
site.com/index.html
а это уже дубли главной страници, что не есть гуд. Вот я и решил написать такой редирект.
з.ы.Написал на почту вам!
Alexander
Поковырялся. Было:
<IfModule mod_rewrite.c>
	RewriteEngine On

	#Редирект для чужих доменов
	#RewriteCond %{HTTP_HOST} !^vkandroid\.net$
	#RewriteRule ^(.*)$ http\://vkandroid\.net/$1 [R=301,L]

	#Правила для скачивания: отдаем любой контент только через скрипт
	#НЕ УДАЛЯЙТЕ И НЕ КОММЕНТИРУЙТЕ СТРОКУ НИЖЕ!!!! ЭТО ЧРЕВАТО ВЗЛОМОМ!!!
	RewriteRule ^uploads/(.*)$ download.php?download=$1 [L]

	#Если запрашиваемый ресурс не папка и не файл - это ЧПУ
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	#Если файл - картинка. Нафик надо сообщать об этом системе... Это ж целую страницу придется генерить из-за случайной глупости, что тяжело для сервера...
	RewriteCond %{REQUEST_URI} !\.(css|js|jpe?g|gif|png|bmp)$
	RewriteRule ^(.*)$ index.php?!$1!&%{QUERY_STRING} [L]
	
### Редиректы с index.php и index.html на сайт
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://vkandroid.net [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://vkandroid.net [R=301,L]

### Редиректы с www на сайт
RewriteCond %{HTTP_HOST} !^vkandroid\.net$
RewriteRule ^(.*)$ http://vkandroid.net/$1 [R=301,L]
</IfModule>

Стало:
<IfModule mod_rewrite.c>
	RewriteEngine On
	
	#Редиректы с index.php и index.html на сайт
	RewriteRule ^index\.html$ http://vkandroid.net/ [R=301,L]

	RewriteCond %{THE_REQUEST} =
	RewriteRule ^index\.php$ http://vkandroid.net/ [R=301,L]
	
	#Редирект для чужих доменов
	RewriteCond %{HTTP_HOST} !^vkandroid\.net$
	RewriteRule ^(.*)$ http://vkandroid.net/$1 [R=301,L]	
	
	#Правила для скачивания: отдаем любой контент только через скрипт
	#НЕ УДАЛЯЙТЕ И НЕ КОММЕНТИРУЙТЕ СТРОКУ НИЖЕ!!!! ЭТО ЧРЕВАТО ВЗЛОМОМ!!!
	RewriteRule ^uploads/(.*)$ download.php?download=$1 [L]
	
	#Если запрашиваемый ресурс не папка и не файл - это ЧПУ
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	#Если файл - картинка. Нафик надо сообщать об этом системе... Это ж целую страницу придется генерить из-за случайной глупости, что тяжело для сервера...
	RewriteCond %{REQUEST_URI} !\.(css|js|jpe?g|gif|png|bmp)$
	RewriteRule ^(.*)$ index.php?!$1!&%{QUERY_STRING} [L]
</IfModule>
Спасибо мужик! Все работает :)
Немного подправил, чтобы еще и с index.php переправляло на главную. Кому нужно - берите:
<IfModule mod_rewrite.c>
	RewriteEngine On
	
	#Редиректы с index.php и index.html на сайт
	RewriteRule ^index\.html$ http://site.ru/ [R=301,L]
	
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
    RewriteRule ^index\.php$ http://site.ru [R=301,L]
	
	#Редирект для чужих доменов
	RewriteCond %{HTTP_HOST} !^site\.ru$
	RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]	
	
	#Правила для скачивания: отдаем любой контент только через скрипт
	#НЕ УДАЛЯЙТЕ И НЕ КОММЕНТИРУЙТЕ СТРОКУ НИЖЕ!!!! ЭТО ЧРЕВАТО ВЗЛОМОМ!!!
	RewriteRule ^uploads/(.*)$ download.php?download=$1 [L]
	
	#Если запрашиваемый ресурс не папка и не файл - это ЧПУ
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	#Если файл - картинка. Нафик надо сообщать об этом системе... Это ж целую страницу придется генерить из-за случайной глупости, что тяжело для сервера...
	RewriteCond %{REQUEST_URI} !\.(css|js|jpe?g|gif|png|bmp)$
	RewriteRule ^(.*)$ index.php?!$1!&%{QUERY_STRING} [L]
</IfModule>


Цитата
Добавив этот редирект в свой hetaccess вы избавитесь от следующих дублей:
www.site.ru
site.ru/index.php
site.ru/index.html
www.site.ru/index.php
www.site.ru/index.html
Все эти адреса теперь будут перенаправлять вас на главную страницу по адресу site.ru

Alexander
Onlink, хм... Добавим в дистриб, думаю, это будет полезно многим :)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.