Вопрос

Я хочу перенаправить все запросы страниц пользователей на страницу в том же домене.

Например, у меня есть страница «в разработке, BRB», которую я хочу, чтобы все пользователи видели, когда они пытаются получить доступ к ЛЮБОЙ странице сайта.

Я попробовал использовать это:

Redirect 302 / http://www.domain.com/index2.php

Что это значит, так это попытаться применить перенаправление и к странице index2.php, и оно застревает в цикле, где пользователь затем видит это, пока браузер не остановится.

http://www.domain.com/index2.phpindex2.phpindex2.phpindex2.php etc., etc,

Есть идеи, как записать это правило, кроме этой страницы?

Это было полезно?

Решение

Вам необходимо исключить файл, на который вы хотите перенаправить.Вот пример с mod_rewrite:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule !^index2\.php$ /index2.php [L,R=302]
</IfModule>

Другие советы

Чтобы предотвратить бесконечный цикл (index2.php <--> index2.php):

Перенаправление только в том случае, если URL-адрес для перенаправления НЕ содержит строку index2.php.

RewriteCond %{QUERY_STRING} !index2.php
RewriteRule ^(.*)$ /index2.php [L,R=301]

Вы можете использовать mod_rewrite

<IfModule mod_rewrite.c>
RewriteCond {REQUEST_URI} !=/index2.php
RewriteEngine on
RewriteRule ^.*$ /index2.php
# End .HTACCESS
</IfModule>

Я был бы более склонен использовать немного другой

Options +FollowSymLinks 
<IfModule mod_rewrite.c>
    RewriteEngine on 
    RewriteRule ^/.*$ /index2.php [R=307,L]
</IfModule>

Это позволит вам вернуть временно перемещенный статус для перенаправления.

Отсутствие этого набора флагов означает, что mod_rewrite по умолчанию вернет статус 302 Found.

ХТХ

ваше здоровье,

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top