0

次の書き換えルールがあります。

RewriteRule ^([a-zA-Z0-9]*)/([a-zA-Z0-9]*)\\.php\?(.*)  /$2.php?shop=$1&$3 [NC,L]
RewriteRule ^([a-zA-Z0-9]*)/([a-zA-Z0-9]*)\\.php        /$2.php?shop=$1 [NC,L] 
RewriteRule ^([a-zA-Z0-9]*)/$  /index.php?shop=$1 [L,NC] 
RewriteRule ^([a-zA-Z0-9]*)$   /index.php?shop=$1 [L,NC] 

その結果、以下をリダイレクトする必要があります。

www.site.com/Sells 
    -> /index.php?shop=Sells [works] 

www.site.com/Sells/menu.php?Cat=1 
    -> /menu.php?shop=Sells&Cat=1 [failing] 
    -> /menu.php?shop=Sells [which is 'wrong'] 

最後の例は、rewrite[1]..によって一致するはずです。

類人猿に同梱されている正規表現テスターを使用してルールをテストしましたが、エスケープ?.て機能しないようです。私は少し混乱しているので、なぜこのエスケープが機能しないのかを明らかにしてくれる人に感謝します。

事前にたくさんの感謝を。

4

3 に答える 3

1
RewriteRule ^([a-zA-Z0-9]*)/([a-zA-Z0-9]*)\\.php\?(.*)  /$2.php?shop=$1&$3 [NC,L]
RewriteRule ^([a-zA-Z0-9]*)/([a-zA-Z0-9]*)\\.php        /$2.php?shop=$1 [NC,L] 

逃げすぎ。に変更\\.php\.phpます。

于 2010-11-10T23:01:33.077 に答える
0

をエスケープするための\をエスケープしているようです。(\。と読み替えられる\。と任意の文字/記号があります)

于 2010-11-10T23:03:22.830 に答える
0

QSAフラグがありませんでした!クエリ文字列が追加され、入力するのを忘れました!!!

プレビューとして追加したダブルスラッシュは、シングルスラッシュを表示していませんでした。

于 2010-11-24T11:12:34.393 に答える