2

すべてのユーザー ページ リクエストを同じドメインのページにリダイレクトしたいと考えています。

たとえば、すべてのユーザーがサイトの任意のページにアクセスしようとしたときに表示する「建設中、BRB」ページがあります。

私はこれを使ってみました:

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

それが行うことは、リダイレクトを index2.php ページにも適用しようとすることであり、ブラウザが停止するまでユーザーがこれを見るというループに陥ります。

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

そのルールをそのページ以外に書き込む方法についてのアイデアはありますか?

4

4 に答える 4

2

リダイレクト先のファイルを除外する必要があります。mod_rewrite を使用した例を次に示します。

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule !^index2\.php$ /index2.php [L,R=302]
</IfModule>
于 2009-04-13T15:41:15.320 に答える
1

無限ループを防ぐには (index2.php <--> index2.php):

リダイレクトする URL に文字列「index2.php」が含まれていない場合のみリダイレクトします

RewriteCond %{QUERY_STRING} !index2.php
RewriteRule ^(.*)$ /index2.php [L,R=301]
于 2012-08-26T01:37:49.323 に答える
0

mod_rewrite を使用できます

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

于 2009-04-13T14:58:43.333 に答える
0

私は少し違うものを使う傾向があります

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

これにより、リダイレクトの移動済み一時ステータスを返すことができます。

この一連のフラグを省略すると、mod_rewrite はデフォルトで 302 Found ステータスを返します。

HTH

乾杯、

于 2009-04-13T15:37:17.623 に答える