たくさんの Web サイトやチュートリアルを調べましたが、解決策が見つかりません。次のスニペットは動作し、http: //example.com/page/pot は pot.php コンテンツを返します
RewriteEngine on
RewriteRule ^page/([^/]*)$ $1.php?page=$1 [L]
逆にうまくいかない
RewriteEngine on
RewriteRule ^([^/]*)/page$ $1.php?page=$1 [L]
たくさんの Web サイトやチュートリアルを調べましたが、解決策が見つかりません。次のスニペットは動作し、http: //example.com/page/pot は pot.php コンテンツを返します
RewriteEngine on
RewriteRule ^page/([^/]*)$ $1.php?page=$1 [L]
逆にうまくいかない
RewriteEngine on
RewriteRule ^([^/]*)/page$ $1.php?page=$1 [L]
現在のアプローチでは、Apache が書き換えられた URI を再挿入してさらにルールを処理するため、無限ループが発生します。
次のように THE_REQUEST 変数を使用する必要があります。
RewriteEngine On
# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+page/[^.]+\.php\?page=([^\s&]+) [NC]
RewriteRule ^ page/%1? [R=302,L]
# internal forward from pretty URL to actual one
RewriteRule ^page/([^/]*)/?$ $1.php?page=$1 [L,QSA,NC]
使用してみてください:
RewriteEngine on
RewriteRule ^([^/]+)/page$ $1.php?page=$1 [L]