ホームページ >php教程 >php手册 >PHP $_SERVER 関連パラメータから Rewrite モジュールがサポートされているかどうかを判断します

PHP $_SERVER 関連パラメータから Rewrite モジュールがサポートされているかどうかを判断します

WBOY
WBOYオリジナル
2016-06-13 12:48:031256ブラウズ

http://www.jb51.net/p1141.html の形式の URL であれば、$_SERVER['REQUEST_URI'] と $_SERVER[' の値の違いによって解析できます。最も重要なことは、ページが重複して渡されるかどうかです。方向によって $_SERVER['REDIRECT_QUERY_STRING'] と $_SERVER['REDIRECT_URL'] という 2 つのパラメーターが生成されるため、ページが重複しているかどうかを判断するのは非常に簡単です。この 2 つの値の存在を判断するだけで済みますが、これは Apache 環境でのみ有効です。

ISAPI Rewrite 環境かどうかを判断するにはどうすればよいですか?

ISAPI Rewrite 環境の場合、上記 2 つのパラメータ $_SERVER['REDIRECT_QUERY_STRING'] と $_SERVER['REDIRECT_URL'] は生成されませんが、独自の固有パラメータも生成されます$_SERVER[ 'HTTP_X_REWRITE_URL']、このパラメータは ISAPI 環境でのみ生成されるため、このパラメータを使用して現在の URL の形式を決定できます。メソッドは次のとおりです:

コードをコピー コードは次のとおりです:

$isApi = (isset($_SERVER['HTTP_X_REWRITE_URL']) && strpos($_SERVER['HTTP_X_REWRITE_URL' ],'?')) ? TRUE : FALSE;


現在の URL の表示形式を判断することで、プログラムがどのように実行されるか、301 リダイレクトが必要かどうかを知ることができます。現在の URL が http://www.jb51 .net/?=p1141 の場合、次のように http://www.jb51.net/p1141.html への 301 リダイレクトを使用する必要があります:


コードをコピーします コードは次のとおりです:

header("HTTP/1.1 301 Moved Permanently");
header("Location) :http://www.jb51.net/p1141.html") ;


次に、リダイレクト後のプログラム プロセスを実行します。これにより、ページの統一性が確保され、問題も解決されます。 ISAPIとApacheの書き換えループリダイレクトの問題。

ISAPI と Apache がリダイレクトされているかどうかを判断します:

ISAPI の使用法:


コードをコピー コードは次のとおりです

$_SERVER['HTTP_X_REWRITE_URL']


Apache は次のように使用します:


コードをコピー コードは次のとおりです:

$_SERVER['REDIRECT_QUERY_STRING'] または $_SERVER['REDIRECT_URL']


限り$_SERVER の各パラメータの使用法をマスターすると、ISAPI と Apache の書き換えループ リダイレクトの問題を簡単に解決できます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。