1

私は自分のウェブサイトにこの単純なリダイレクトを持っていますが、URL を自動的に書き換えません。他の URL を手動で入力してアクセスする必要があります。何が問題なのか、php.ini で何かを有効にする必要がありますか。以下は書き換えです。ルール

RewriteEngine On
RewriteRule ^new-page-([^/]*)\.php$ /mypage.php?name=$1 [L]
4

3 に答える 3

2

で実行している場合は、.htaccessも指定する必要がありますRewriteBase /。試す

RewriteEngine On
RewriteBase /
RewriteRule ^new-page-([^/]*)\.php$ mypage.php?name=$1 [L]

new-page-something.phpこれはmypage.php?name=something内部的に書き換えます。

追加した:

おそらくあなたはこれが欲しい:

RewriteEngine On
RewriteBase /
RewriteRule ^new-page-([^/]*)\.php$ mypage.php?name=$1 [L]
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD|TRACE)\ /mypage.php
RewriteCond %{QUERY_STRING} name=([^\&]*)
RewriteRule ^mypage.php$ new-page-%1.php? [R,L]

/mypage.php最初に追加された RewriteCond は、リダイレクト ループを防ぐために、実際のリクエストが要求しているかどうかをチェックします。2 番目に追加された RewriteCond は、RewriteRule で使用するクエリ文字列を照合するために使用されます。

于 2012-06-20T09:03:53.323 に答える
1

Apache の設定 (httpd.conf) をチェックして、htaccess のオーバーライドが許可されているかどうかを確認してください。

http://httpd.apache.org/docs/2.0/howto/htaccess.html

于 2012-06-20T09:04:45.617 に答える