0

私はこの.htaccessを持っています:

RewriteRule ^(.+)\?([A-Za-z-]+)$ $1&msg=$2 [L,NC]
RewriteRule ^([A-Za-z-]+)$ /?goTo=$1 [L,NC]
RewriteRule ^account/([A-Za-z-]+)$ /?goTo=account&section=$1 [L,NC]
RewriteCond %{QUERY_STRING} (?:^|&)edit=([^&]*) [NC]
RewriteRule ^account/?$ /?goTo=account&act=edit_%1 [L,NC,QSA]
RewriteCond %{QUERY_STRING} (?:^|&)return=([^&]*) [NC]
RewriteRule ^access/?$ /?goTo=access&return=%1 [L,NC,QSA]

悩んでいる部分はRewriteRule ^(.+)\?([A-Za-z-]+)$ $1&msg=$2 [L,NC].

基本的に行ってみるとmysite.com/account/userに対応していmysite.com?goTo=account&section=userます。
私が行くなら、mysite.com/account/user?editSucc私は得る必要がありますmysite.com?goTo=account&section=user&msg=editSucc

どうすればこれを達成できますか?ありがとう。

4

1 に答える 1

0

2 番目のルールで QSA フラグが必要なだけで、最初のルールはまったく必要ありません。

RewriteRule ^account/([A-Za-z-]+)/?$ /?goTo=account&section=$1 [L,NC,QSA]

RewriteCond %{QUERY_STRING} (?:^|&)edit=([^&]*) [NC]
RewriteRule ^account/?$ /?goTo=account&act=edit_%1 [L,NC,QSA]

RewriteCond %{QUERY_STRING} (?:^|&)return=([^&]*) [NC]
RewriteRule ^access/?$ /?goTo=access&return=%1 [L,NC,QSA]
  • RewriteRuleQUERY_STRING と一致しないことを忘れないでください
  • QSA フラグは、既存のクエリ文字列を新しいクエリ パラメータに追加するためのものです

参考:Apache mod_rewrite の紹介

于 2013-11-04T13:52:12.247 に答える