.htaccess перенаправляют все страницы к новому домену

То, которые перенаправляют правило, было бы я использовать для перенаправления всех страниц под olddomain.example быть перенаправленным к newdomain.example?

Сайт имеет полностью другую структуру, таким образом, я хочу, чтобы каждая страница под старым доменом была перенаправлена к новой доменной индексной странице.

Я думал, что это сделает (в соответствии с olddomain.example базовым каталогом):

RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.example/ [R=301]

Но если я перешел к olddomain.example/somepage Я перенаправляюсь к newdomain.example/somepage. Я ожидаю перенаправление только к newdomain.example без суффикса страницы.

Как я не пускаю последнюю часть?

207
задан Chris van Chip 20 December 2018 в 03:31
поделиться

4 ответа

Может быть так:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^OLDDOMAIN\.com$ [NC]
RewriteRule ^(.*)$ http://NEWDOMAIN.com [R=301,L]
190
ответ дан 23 November 2019 в 04:42
поделиться

Просто чтобы уточнить, после удаления редиректа хостинга, который был на пути, мое оригинальное решение также работает:

RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.com/ [R=301]
78
ответ дан 23 November 2019 в 04:42
поделиться

С точки зрения удобства использования, было бы лучше, если бы вы также отправляли путь с запросом (т.е.., что у вас есть на данный момент) и дать вашему новому сайту разобраться с этим:

Вы искали "/продукты".

К сожалению, эта страница исчезла. Хотели бы вы вместо этого посетить "/new_products"?

(а еще лучше сделать это автоматически)

Это, конечно, много кодирования и эвристики для более крупного сайта, но, на мой взгляд, это окупится с точки зрения удовлетворенности пользователей (когда ваша тщательно сохраненная закладка продукта вашей мечты просто приведет вас на первую страницу newdomain.com, это расстраивает)

.
2
ответ дан 23 November 2019 в 04:42
поделиться

Это ошибка в старых версиях apache (и, следовательно, mod_rewrite), где префикс пути добавлялся к переписанному пути, если он изменялся. Смотрите здесь

Я думаю, что это было исправлено в apache2 V2.2.12, есть специальный флаг, который нужно использовать, который я добавлю сюда, когда найду его, (я думаю, это NP для No Path)

RewriteRule ^(.*)$ http://newdomain.com/ [??]
2
ответ дан 23 November 2019 в 04:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: