1

この形式の URL があります

www.example.com/?city_name="New-York"

そして、このURLを自動的に書き換える方法があるかどうか疑問に思っていました

www.example.com/cities/new-york

書き換え規則の使用。

4

1 に答える 1

1

RewriteCondクエリ文字列で aを使用RewriteRuleしてから、結果を使用して a を使用します。

RewriteCond %{QUERY_STRING} ^city_name="([\w]+)" [NC]
RewriteRule (.*) /cities/%1? [L,R]

RewriteCondクエリ文字列に対して正規表現を実行し、パラメーターを探しcity_nameます。NC正規表現で大文字と小文字を区別しないようにするための、大文字と小文字を区別しないフラグです。実際のRewriteRuleディレクティブでは、 へのパスを完全に書き換えます/cities/%1。ここ%1で、 は最後に成功したディレクティブから最初に一致したグループですRewriteCond。この場合は、要求された都市のスラッグです。最後にa?を追加してリクエストからクエリ文字列を削除し、LRフラグを渡して完全な 302 リダイレクトを発行します。

于 2012-05-04T20:30:21.900 に答える