質問

.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]

ありがとう

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top