Поставил 301 редирект с домена без www на домен с www и начались траблы

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#1 17 мая 2011 в 05:26
В общем недавно я создавал тему на форуме
instantcms.ru/forum/thread6726.html

При переходе на site.ru всё ок, а на site.ru/index.php ошибка 404 что то не могу врубиться, что не так...

и заметил, что стали наблюдаться различные проблемы
а сегодня обнаружил кое что ещё хлеще

в общем понадобилось склеить домен без www с доменом с www, что я с успехом и сделал, через 301 редирект

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

но теперь, если у человека есть закладка, на какой-нибудь раздел сайта, где домен без www, например site.ru/novosti, то вместо www.site.ru/novosti, перебрасывает на www.site.ru/index.php и этот адрес естесно выдаёт ошибку 404
если к этой закладке приписать www, то естесно всё ок
если набрать site.ru/, то как положено перекинет на www.site.ru/
но если на какой либо раздел и без www, то 404

в общем засада какая то!
#2 17 мая 2011 в 10:03
уф, хорошо что я 301 редирект прописал с самого основания сайта…
#3 17 мая 2011 в 10:04
А вот так попробуйте:
  1. RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
  2. RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
#4 17 мая 2011 в 11:16
Anonimus, отпишите о результатах применения совета googlebot, пожалуйста.
#5 17 мая 2011 в 13:32
Евгений, вряд-ли что-то изменится, там в ядре недоработочка была, Администратор ответил тут.
#6 17 мая 2011 в 19:22


Евгений, вряд-ли что-то изменится, там в ядре недоработочка была, Администратор ответил тут.

googlebot
Все изменения сделал, даже по совету гуглебота, хотя это те же яйца, только в профиль, но с редиректом воз и ныне там

в общем набираешь например site.ru/novosti, но перебрасывает по прежнему не на www.site.ru/novosti, как по логике и должно быть, а на www.site.ru/index.php
в общем пока не пойму в чём косяк
#7 17 мая 2011 в 19:47
Содержимое url_rewrite.php и .htaccess покажите.
#8 17 мая 2011 в 20:15
в .htaccess нужно сделать запись:
  1. RewriteCond %{HTTP_HOST} .
  2. RewriteCond %{HTTP_HOST} ^site.ru$ [NC]
  3. RewriteRule ^(.*) http://www.site.ru/$1 [L,R=301]
и все должно нормально переходить на любую страницу.
Проверено на 1.7 и 1.8
Да в принципе и разницы нету какая версия и какой сайт
#9 17 мая 2011 в 20:51

RewriteCond %{HTTP_HOST} .

uavip
вот это бред.
короче в релизе 1.8 вот этот блок
  1. RewriteCond %{REQUEST_URI} !\.(jpg|jpeg|ico|gif|png|css|xml|js|pl|txt)$ [NC]
  2. RewriteCond %{REQUEST_FILENAME} !^/admin
  3. RewriteCond %{REQUEST_FILENAME} !^/migrate
  4. RewriteCond %{REQUEST_FILENAME} !^/install
  5. RewriteCond %{REQUEST_FILENAME} !-f
  6. RewriteCond %{REQUEST_FILENAME} !-d
  7.  
  8. RewriteRule ^(.*)$ /index.php [L]
перекидывает все запросы к фактически несуществующим файлам и директориям, кроме файлов jpg|jpeg|ico|gif|png|css|xml|js|pl|txt и кроме обращений к /admin,/migrate и /install на обработку index.php в корне сайта.
Т.е. теперь вообще все редиректы надо писать в url_rewrite.php
#10 17 мая 2011 в 21:25

вот это бред.

googlebot
Интересно а почему этот бред идеально работает у меня???
#11 17 мая 2011 в 21:35
Может не понятно для некоторых написал scratch
Те строчки нужно добавить!!!
И должно получиться так:
  1.  
  2. AddDefaultCharset windows-1251
  3.  
  4. RewriteCond %{HTTP_HOST} .
  5. RewriteCond %{HTTP_HOST} ^site.ru$ [NC]
  6. RewriteRule ^(.*) http://www.site.ru/$1 [L,R=301]
  7.  
  8. RewriteEngine On
  9. RewriteBase /
  10. RewriteRule ^.htaccess$ - [F]
  11.  
  12. RewriteCond %{REQUEST_URI} !\.(jpg|jpeg|ico|gif|png|css|xml|js|pl|txt)$ [NC]
  13. RewriteCond %{REQUEST_FILENAME} !^/admin
  14. RewriteCond %{REQUEST_FILENAME} !^/migrate
  15. RewriteCond %{REQUEST_FILENAME} !^/install
  16. RewriteCond %{REQUEST_FILENAME} !-f
  17. RewriteCond %{REQUEST_FILENAME} !-d
  18.  
  19. RewriteRule ^(.*)$ /index.php [L]
  20.  
#12 17 мая 2011 в 21:37
Что именно работает? У Вас и без www и c www открывается никуда не переадресовывая.
Лол, прикольный у Вас htaccess shockсначала правила написали, а потом уже преобразования включили cry
#13 17 мая 2011 в 21:40

то именно работает? У Вас и без www и c www открывается никуда не переадресовывая.

googlebot
Где у вас???
Я ссылку ни на какой пример не давал!
Пропиши и проверь — делов две секунды)
#14 17 мая 2011 в 21:59

прикольный у Вас htaccess

googlebot
Мне нужно было очень быстро решить вопрос с переадресацией, единственный первый сработавший метод был этот — над правильностью не запаривался — главное на тот момент было чтоб все работало.
И самое главное переадресовывает что угодно, от куда угодно и куда угодно!
Но если вы будете более любезны и объясните почему так нельзя — я буду вам благодарен как и другие пользователи которым это понадобиться.
#15 17 мая 2011 в 22:04


Содержимое url_rewrite.php и .htaccess покажите.

googlebot

стандартное содержание файлов
+ этот код
  1. RewriteEngine On
  2. RewriteCond %{HTTP_HOST} ^site\.ru$ [NC]
  3. RewriteRule ^(.*)$ http://www.site.ru/$1 [R=301,L]
и этот код везде работает правильно
пробовал и все варианты которые тут предложены, но .....
всё как заколдовано ))))
может таки на хосте проблема, но какая тогда проблема, я лично ума не приложу
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.