私は自分のウェブサイトにこの単純なリダイレクトを持っていますが、URL を自動的に書き換えません。他の URL を手動で入力してアクセスする必要があります。何が問題なのか、php.ini で何かを有効にする必要がありますか。以下は書き換えです。ルール
RewriteEngine On
RewriteRule ^new-page-([^/]*)\.php$ /mypage.php?name=$1 [L]
で実行している場合は、.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 で使用するクエリ文字列を照合するために使用されます。
Apache の設定 (httpd.conf) をチェックして、htaccess のオーバーライドが許可されているかどうかを確認してください。