Какое правило перенаправления я буду использовать для перенаправления всех страниц, olddomain.example
на которые нужно перенаправить newdomain.example
?
Сайт имеет совершенно другую структуру, поэтому я хочу, чтобы каждая страница в старом домене была перенаправлена на новую индексную страницу домена .
Я думал, что это будет делать (в базовой директории olddomain.example):
RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.example/ [R=301]
Но если я перейду к, olddomain.example/somepage
меня перенаправят на newdomain.example/somepage
. Я ожидаю перенаправления только newdomain.example
без суффикса страницы.
Как мне сохранить последнюю часть?
.htaccess
mod-rewrite
Ювал Адам
источник
источник
RewriteEngine on
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]
* stackoverflow.com/a/7578810/1066234Ответы:
Может быть так:
источник
RewriteCond %{HTTP_HOST} !^NEWDOMAIN\.com$ [NC]
?Ответ ниже может потенциально вызвать бесконечный цикл перенаправления ...
Здесь этот перенаправляет все после имени домена в URL-адресе в ту же самую копию в новом URL-адресе домена:
www.example.net/somepage.html?var=foo
перенаправляет наwww.newdomain.com/somepage.html?var=foo
источник
Просто чтобы уточнить, после удаления перенаправления хостинга, который был в пути, мое оригинальное решение также работает:
источник
Я использовал для своего блога Wordpress это как .htaccess. Он преобразует http: //www.blah.example/asad , http: //blah.example/asad , http: //www.blah.example2/asad и т. Д. В http: //blah.example/asad. Спасибо всем другие ответы я понял это.
источник
Это сработало для меня
источник
Существуют различные способы сделать это и различные перенаправления, я перечислил их ниже:
301 (постоянное перенаправление): перенаправьте весь сайт на другой URL-адрес на постоянной основе. Это наиболее распространенный тип перенаправления, который полезен в большинстве ситуаций. В этом примере мы перенаправляем на домен «example.com»:
302 (Временное) Перенаправление: укажите весь сайт на другой временный URL. Это полезно в целях SEO, когда у вас есть временная целевая страница и вы планируете позже вернуться на свою главную целевую страницу:
Перенаправьте index.html в определенную подпапку:
Перенаправить старый файл на новый путь к файлу:
Перенаправить на определенную страницу индекса:
источник
Redirect 301 / http://example.com/$1
тогда все страницы исходного сайта будут перенаправлены в новый корень сайта$1
не требуется, вы думаете оRedirectMatch
директиве (но тогда вам все равно нужно определить группу захвата для$1
ссылки).Redirect
директивы будут перенаправляться как лайк, тогда как ОП хочет перенаправить только на домашнюю страницу нового сайта (хотя это само по себе не рекомендуется). Возможно, вам придется использоватьRedirectMatch
директиву, если вы хотите просто перенаправить на определенный URL.Если вы хотите перенаправить из какого-либо места на поддомен, вы можете использовать:
Redirect 301 /Old-Location/ http://subdomain.yourdomain.com
источник
RewriteEngine On
бросает 500 внутренних ошибок. Это очень ограниченное веб-пространство. ИспользованиеRedirect 301 / http://foo
- единственный возможный способ иметь дело.Если новый домен, на который вы перенаправляете свой старый сайт, находится на другом хосте, вы можете просто использовать
Redirect
Это будет перенаправлять все запросы от
olddomain
кnewdomain
.Redirect
Директива не будет работать или может вызвать,Redirect loop
если ваш новый домен и старый домен оба находятся на одном хосте, в этом случае вам нужно будет использоватьmod-rewrite
перенаправление на основе запрошенного заголовка хоста.источник
Моя репутация не позволяет мне комментировать ответ, но я просто хотел отметить, что здесь ответ с самым высоким рейтингом имеет ошибку:
должен иметь косую черту до 1 доллара, так
источник
Мое решение как SymLinks не работало на моем сервере, поэтому я использовал If в своем PHP.
источник
Это ошибка в старых версиях apache (и, следовательно, mod_rewrite), где префикс пути был добавлен к переписанному пути, если он был изменен. Посмотреть здесь
Я думаю, что это было исправлено в apache2 V2.2.12, вам нужно использовать специальный флаг, который я добавлю сюда, когда найду его (я думаю, что это был NP для No Path)
источник
С точки зрения удобства использования было бы лучше, если бы вы также отправили путь с запросом (т. Е. То, что у вас есть в данный момент) и позволили вашему новому сайту разобраться с этим:
(и еще лучше, делая это автоматически.)
Это, очевидно, много кода и эвристики для более крупного веб-сайта, но, на мой взгляд, это окупится с точки зрения удовлетворенности пользователей (когда ваша тщательно сохраненная закладка продукта вашей мечты просто приводит вас на первую страницу newdomain.com, это расстраивает.)
источник
Если вы хотите перенаправить, чтобы завершить новый сайт (домен) без параметров или страниц, используйте это:
источник
.htaccess
как оно просто не будет соответствовать ни одному URL в корне документа. Это будет работать в конфигурации сервера или в контексте VirtualHost.Я попробовал ответ user968421 и решение OP, но браузер выдал ошибку безопасности для страницы оформления заказа. Я не могу сказать вам, почему именно.
Наш хост (Site Ground) тоже не мог этого понять.
Окончательное решение было близким, но с небольшой поправкой к ответу user968421 (примечание: в отличие от OP, я пытался перенаправить на соответствующую страницу, а не только на домашнюю страницу, поэтому я сохранил обратную ссылку [
$1
после домена] от user968421's ответ):Получил настройки от этого генератора перенаправления htaccess, рекомендованного статьей Host Gator (отчаянные времена, отчаянные меры, amiright?).
источник
Просто так, и это не перенесет конечный запрос с URL на новый домен.
источник
Используйте условные перенаправления с помощью
Options -FollowSymLinks
иAllowOverride -Options
отключенные хостером, если нужно также обслуживать несколько локальных файлов:Образец .htaccess
Этот пример будет обслуживать локальный index.html и перенаправлять всех остальных сотрудников на новый домен.
источник
Попробуйте этот метод, чтобы перенаправить все на домашнюю страницу нового домена, у меня это работает:
источник
Предыдущие ответы не работали для меня.
Я использовал этот код. Если вы используете OSX, убедитесь, что вы используете правильный формат.
источник