1

このロジックが機能する必要があります:

ユーザーが見られるようにこの文字列を書き直したい

http://mysite.com/index.php?cl=mykeystring から http://mysite.com/otherkey/

http://mysite.com/index.php?myvar=test&cl=mykeystring&mysecondvar=morevalue から http://mysite.com/otherkey/myvar=test&mysecondvar=morevalue

ただし、http://mysite.com/otherkey/が記述されている 場合は、http://mysite.com/index.php?cl = mykeystringをロードしますが、リダイレクトは行われません。

出来ますか?コードを変更する可能性はありませんが、.htaccessのみを変更できます

このロジックは、次のコードによってほぼ実現されます。

RewriteCond %{QUERY_STRING} ^(.*?)cl=mykeystring(.*?)$ [NC]
RewriteRule ^index.php$ /otherkey/%1%2? [R,L]

RewriteRule ^otherkey/(.*?)$ /index.php?cl=mykeystring&$1

しかし、最初の書き換えルールで不要なアンプシンボルを取得しています。解決策はありますか?

4

1 に答える 1

0

私はあなたがこのようなことをすることができると思います:

RewriteCond %{QUERY_STRING} cl=mykeystring [NC]
RewriteRule ^index.php /otherkey/ [QSA]

ここのドキュメント:http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

于 2012-05-14T14:23:09.153 に答える