.htaccess
ファイル内でmod_rewriteを使用して、フォルダーをvar string
に書き換えたいのですが。以下は、現在の例と私が好むものです。
example.com/main/folder1/folder2/folder3
example.com/parser.php?var1=folder1&var2=folder2&var3=folder3
現在のURLを優先URLに書き換えるにはどうすればよいですか?
次の3つの書き換えルールを使用して、最大3レベルのディレクトリを処理できます。
RewriteEngine on
RewriteRule ^main\/([^\/]+)\/([^\/]+)\/([^\/]+)\/? /parser.php?var1=$1&var2=$2&var3=$3 [L]
RewriteRule ^main\/([^\/]+)\/([^\/]+)\/? /parser.php?var1=$1&var2=$2 [L]
RewriteRule ^main\/([^\/]+)\/? /parser.php?var1=$1 [L]
それらの正規表現では:
^main\/
:「main /」で始まります([^\/]+)
:スラッシュではない文字の束($1
、$2
、または$3
で引き出されるキャプチャグループ内)\/?
オプションの終了スラッシュ[L]
最後の書き換えルール(後の書き換えルールがalsoトリガーされないようにするため)私は通常、次のようにすべてのフォルダーを単一の変数として渡すことを好みます。
RewriteEngine on
RewriteRule ^main\/(.*) /parser.php?folders=$1
PHPパーサーは、スラッシュでフォルダーを分割して、必要な3つの変数を取得できます。