1

URL/page1.php?abcが要求されたら、/page1.php?xyz代わりにリダイレクトしてほしい。

具体的には、これが私がクライアントに伝えたいことです。

HTTP/1.1 301 Moved Permanently
Location: /page1.php?xyz

Apache RedirectMatchディレクティブを試しましたが、クエリ文字列をサポートしていないようです。

クエリ文字列を含むURLのHTTPリダイレクトをサポートする別のディレクティブはありますか?

現在、私はPHPのヘッダー関数を使用してこれを達成していますが、これは一時的なハックのように感じるので、Apacheソリューションを探しています。

4

2 に答える 2

3

これに使えますmod_rewrite。このモジュールが利用可能な場合は、次のルールを使用します ( 内に配置する必要があります/.htaccess)。

RewriteEngine on
RewriteCond %{QUERY_STRING} ="abc"
RewriteRule ^page1\.php$ /page1.php?xyz [R=301,L]

PHP のみのソリューションもあります。

if ($_SERVER["QUERY_STRING"] == "abc") {
    header("Location: /page1.php?xyz", true, 301);
    die;
}
于 2013-01-26T07:45:54.877 に答える
0

それ自体を生成するPHPファイルを作成しますが、これを実行できるApacheモジュール/ソリューションについては知りません。

http://php.net/manual/en/function.header.php

于 2013-01-26T06:27:18.870 に答える