0

だから私はある種の奇妙な問題を抱えています。からの書き換えルールがあります

mysite.com/brand.php?brand=example&ref=ex1

mysite.com/brand/example/ex1

そして私はなんとかそれをすることができました、しかしまた別の問題があります:あなたがこれをタイプするとき:

mysite.com/brand/example/ex1.html

また

mysite.com/brand/example/ex1.php

私はこれを手に入れます:

mysite.com/brand/example/ex1?ref=ex1.php&brand=example

なぜ私がこのリダイレクトを取得するのか、そしてそれを取り除く方法を誰かに教えてもらえますか?

私はこれを試しました:

RedirectMatch   ^brand/([A-Za-z0-9-\.\_]+)/([A-Za-z0-9-\.\_]+)php$ /brand/$1/$2

またはこれ:

RedirectMatch   ^brand/([A-Za-z0-9-\.\_]+)/([A-Za-z0-9-\.\_]+)\.php$ /brand/$1/$2

しかし、それは単に機能しません。

どうか、誰か助けてください!

4

1 に答える 1

0

これには を使用しmod_rewriteます。

RewriteEngine On
RewriteCond %{REQUEST_URI} =/brand.php
RewriteCond %{QUERY_STRING} ^brand=([^&]+&ref=(.+)$
RewriteRule .* /brand/%1/%2? [L,R]

両方が有効なRewriteRule場合にのみ適用されます。RewriteCond1 つ目RewriteCondはリクエスト URL を と比較し/brand.php、2 つ目はクエリ文字列に対して正規表現を照合し、一致%1%2それぞれ と に格納します。

RewriteRule、クエリ文字列の一致部分を使用して書き換えられた URL です。

于 2012-11-25T20:15:00.073 に答える