с 404 на новый домен

Статус
В этой теме нельзя размещать новые ответы.
Что-то народ предлагает какой-то коктейль из разных модулей апача.
Не нужно использовать директивы Redirect — они от модуля, который гораздо проще mod_rewrite. Лучше уж делать все на mod_rewrite, тогда и будет гибкость.

Насколько я понимаю
ErrorDocument 404 Для просмотра ссылки Войди или Зарегистрируйся
просто буедет перебрасывать при 404 ошибке на главную страницу example.com.

А насколько я понял, у ТС отсутствующие страницы просто находятся на другом сервере. В таком случае поможет что-то вроде этого:
Код:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://www.example.com/$1 [L,QSA]
Тогда для всех несуществующих страниц будет редирект на соответствующие им на другом хосте. 404 ошибка вообще не возникает, а получается 301й редирект.
 
  • Заблокирован
  • #13
Код:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://www.example.com/$1 [L,QSA]
Тогда для всех несуществующих страниц будет редирект на соответствующие им на другом хосте. 404 ошибка вообще не возникает, а получается 301й редирект.

Вроде все правильно, но почему в последней строчке?
Код:
RewriteRule ^(.*)$ http://www.example.com/$1 [B][L,QSA][/B]

А не так:
Код:
RewriteRule ^(.*)$ http://www.example.com/$1 [B][R=301,L][/B]
 
дело в том, что эти варианты эквивалентны.
когда происходит редирект на url с полным именем сервера, т.е. например http://www.example.com/$1, происходит внешний редирект, и по-умолчанию он имеет статус 301. Поэтому ваш вариант избыточен, но, соглашусь, более понятен.

А вот флаг QSA нужен для того, чтобы правильно передавались GET параметры при перенаправлении url, что для данной задачи очень важно.
 
Вроде все правильно, но почему в последней строчке?
Код:
RewriteRule ^(.*)$ http://www.example.com/$1 [B][L,QSA][/B]
А не так:
Код:
RewriteRule ^(.*)$ http://www.example.com/$1 [B][R=301,L][/B]
можно гуру еще помучать?!?!
в этом варианте можно сделать исключение для главной страницы??
DirectoryIndex index.html не помогает
 
Что-нибудь вроде этого:
RewriteCond %{REQUEST_URI} !^/$
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

Т.е. просто добавляем условие. DirectoryIndex, это немного не про то.
 
Что-нибудь вроде этого:
RewriteCond %{REQUEST_URI} !^/$
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
Т.е. просто добавляем условие. DirectoryIndex, это немного не про то.
в этом варианте он будет подставлять для редиректа запрашиваемый URL ??
ну так главную он тоже средиректит
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху