Назад | Перейти на главную страницу

Перенаправление URL на другую страницу того же сайта

В основном я хочу перенаправить все запросы в свой домен на определенную страницу. Например, перенаправьте все запросы на страницу X, если вы уже не находитесь на странице X, и в этом случае вам нужно просто загрузить ее. Но мои решения просто создают бесконечный цикл: /

Я попытался...

RewriteCond %{REQUEST_URI} !=/underconstruction.html
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !^/underconstruction.html
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

Проблема с приведенными выше примерами заключается в том, что строки RewriteRule не перенаправляют на underconstruction.html, они снова перенаправляют примерно на тот же URL (поскольку $ 1 соответствует (. *)).

В этом примере 301 перенаправляет все URL-адреса на "/underconstruction.html":

RewriteEngine On
RewriteCond %{REQUEST_URI} !=/underconstruction.html
RewriteRule ^ /underconstruction.html [R=301]

(что переводится как «Если URI не /underconstruction.html, перенаправить на /underconstruction.html»)

Из того, что вы описали, вы хотите, чтобы правило перезаписи было больше похоже:

RewriteRule ^(.*)$ $LINK [L,R=301]

Другими словами, потеряйте 1 доллар. При этом исходный URL-адрес присоединяется к новому URL-адресу, что приводит к бесконечному циклу.

(Я не проверял условия, но я думаю, что одно из них должно работать)

Как насчет

<VirtualHost *:80>
   ...
   RedirectMatch !^/underconstruction.html http://yourdomain/underconstruction.html
   ...
</VirtualHost>