.htaccess rewritecond書き換えケースレベル2 folder = info
-
05-07-2019 - |
質問
.htaccess
を書き換えるように設定したい:
example.com/bla/info/
to
example.com/info/index.php?q=bla
example.com/bla/info/txt/
to
example.com/info/index.php?q=bla&t=txt
ブラウザに表示したい:
example.com/bla/info/txt/
次のようなレベル2の書き換えでは書き換えたくありませんでした:
example.com/bla/xxx/
または
example.com/ccc/zzz/aaa/
しかし
example.com/silly/info/
同様に機能します
example.com/strange/info/mytxt/
これは理にかなっていますか
サポートが必要ですか
解決
パターンを^で開始し、$で終了する場合、文字列全体が一致する場合にのみルールが適用されます。
RewriteRule ^/bla/info/$ /info/index.php?q=bla
RewriteRule ^/bla/info/txt/$ /info/index.php?q=bla&t=txt
[R]オプションを使用しないで使用する場合、ブラウザに表示されるURLはユーザーが入力したものになります。
この汎用化を試みていますか?その場合、正規表現タイプのマッチングと変数置換を使用できます。 'bla'を次のスラッシュ(/)までの任意の文字列に一致させるには、
を使用します([^/]+)
パターンで、置換で$ 1を使用して参照します。
RewriteRule ^/([^/]+)/info/$ /info/index.php?q=$1
RewriteRule ^/([^/]+)/info/([^/]+)/$ /info/index.php?q=$1&t=$2
詳細については、 mod_rewriteに関するApache Webページをお勧めします。
[編集。オリジナルのポスターが理解したように、パターンにホスト名を含めないようにルールを修正しました。]
-
bmb
他のヒント
あなたは私を正しい軌道に乗せました。
iは次のようなものになりました:
RewriteRule ^([^/\.]+)/info/?$ example/info/index.php?q=$1 [L]
ありがとう
所属していません StackOverflow