Как перенаправить example.com и example.com/anything на example.com/blog - PullRequest
1 голос
/ 08 марта 2020

Я хочу перенаправить example.com и example.com/anything на example.com/blog. Обратите внимание на несколько вещей.

Я ссылаюсь на example.com для домена 1.

Я использую apache в качестве веб-сервера.

Мой документ root установлен на / var / www/html/public в apache файле vhost conf (для laravel APP).

Я попытался установить перенаправления в .htaccess и использовать apache файл vhost conf, и я получаю перенаправление слишком много раз ошибка.

Может кто-нибудь помочь мне выполнить sh это, пожалуйста?

Ответы [ 2 ]

1 голос
/ 08 марта 2020

Это, вероятно, то, что вы ищете: переписать на уровне http-сервера:

RewriteEngine on
RewriteRule ^/?$ /blog [R=301]
RewriteRule ^/?anything/?$ /blog [R=301]

Если под «чем-либо» вы на самом деле имеете в виду что-нибудь , так что перенаправление должно применяется независимо от запрошенного пути, тогда это должно сделать:

RewriteEngine on
RewriteCond %{REQUEST_URI} !/blog
RewriteRule ^ /blog [R=301]

Хорошая идея - начать с временного перенаправления 302 и изменить его только на постоянное перенаправление 301 позже, как только вы будете уверены, все правильно настроено. Это предотвращает проблемы с кешированием при испытаниях ...

Эта реализация будет работать аналогичным образом в конфигурации хоста http-серверов или внутри распределенного файла конфигурации (файл ".htaccess"). Очевидно, что модуль перезаписи должен быть загружен внутри http-сервера и включен на хосте http. Если вы используете распределенный файл конфигурации, вам нужно позаботиться о том, чтобы его интерпретация вообще была включена в конфигурации хоста и находилась в папке хоста DOCUMENT_ROOT.

И общее замечание: вы всегда должны предпочитать размещать такие правила в конфигурации хоста http-серверов вместо использования распределенных файлов конфигурации (".htaccess"). Эти распределенные файлы конфигурации добавляют сложность, часто являются причиной неожиданного поведения, их трудно отладить, и они действительно замедляют работу http-сервера. Они предоставляются только в качестве последнего варианта для ситуаций, когда у вас нет доступа к реальной конфигурации хоста http-серверов (читай: действительно дешевые поставщики услуг) или для приложений, настаивающих на написании своих собственных правил (что является очевидным кошмаром безопасности).

0 голосов
/ 08 марта 2020

Вы можете сделать это на своих маршрутах

// web.php
Route::redirect('/', '/blog');
Route::redirect('/anything', '/blog');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...