0

次のような URL を Apache に自動的にリダイレクトさせるにはどうすればよいですか。

mydomain.com/webpage.php?name=about_me mydomain.com/webpage.php?name=contact など

に:

mydomain.com/about_me mydomain.com/contact

また、mydomain.com/webpage.php?name=home_page は単純に mydomain.com/ にリダイレクトする必要があります。

現在、私は .htaccess ファイルを持っています:

RewriteRule の RewriteEngine ^$ webpage.php?name=home_page [L] RewriteRule (.*)/$ webpage.php?name=$1 [L]

しかし、RewriteRule は訪問者を自動的にリダイレクトするのではなく、短い URL または長い URL を使用できるようにするだけです。つまり、短縮URLを強制したいのです。

4

2 に答える 2

0

これを試して:

RewriteEngine On
RewriteRule ^webpage.php?name=(.*)$ /$1 [R=301,L]
RewriteRule ^$ webpage.php?name=home_page [L] 
RewriteRule (.*)/$ webpage.php?name=$1 [L]
于 2013-01-23T23:09:12.013 に答える
0

確認するだけです。Apache を次のように動作させますか?

訪問者が「mydomain.com/about_me」にアクセスすると、「mydomain.com/webpage.php?name=about_me」が表示されます。訪問者が「mydomain.com/contact」にアクセスすると、「mydomain.com/webpage.php?name=contact」が表示されます。

これが欲しいなら。これを試してください:

RewriteEngine On
RewriteRule ^(.*)$ webpage.php?name=$1 [L]

「mydomain.com/webpage.php?name=about_me」を「mydomain.com/about_me」に自動的にリダイレクトしたい場合。webpage.php ファイルに追加のチェックを追加する必要があります。チェックでは、「webpage.php」が使用されているかどうかを確認するために URI を評価する必要があります。使用されている場合は、「ヘッダー」関数を使用して短い URL にリダイレクトする必要があります。コードは次のとおりです。

$page="webpage.php";

if(substr($_SERVER["REQUEST_URI"],0,strlen($page)) == $page) {
  $location = "Location: http://".$_SERVER["SERVER_NAME"]."/".$_GET["name"];
  header($location);
} 
// whatever webpage.php does.
于 2013-01-24T01:40:03.367 に答える