1

ページから同じページへの 301 を作成したいのですが、宛先ページの URL にパラメーターが含まれています。ブラウザにエラー (リダイレクトが多すぎる) が表示されるため、無限ループが発生しているようです。これは私のコードです:

RewriteEngine on
Redirect 301 /index.php http://www.monsite.com/index.php?step=1

そのためのアドバイスに感謝します:D

4

1 に答える 1

11

無限のリダイレクト ループを防ぐには、リダイレクトを条件付けして PHP で実行する必要があります。

index.php:

if(!isset($_GET['step'])){
    header('Location:http://www.monsite.com/index.php?step=1');
}

「URL変数ステップが設定されたらすぐにリダイレクトしないでください」とエンジンに何も言わないため、構成方法は無期限にリダイレクトされます。

.htaccess ファイルでこれを行う方法はありますが、これらの種類のリダイレクトは一般にアプリケーション ロジックであるため、スクリプトで直接行う方が理にかなっているようです。

または、純粋な .htaccess ソリューションの場合:

#if query string is empty

RewriteCond %{QUERY_STRING} ^$

#match on / for root, or .index.php in request and send to query string version 

RewriteRule ^(/|index.php)?$ /index.php?step=1 [R=301,L]
于 2012-06-26T15:13:57.760 に答える