変更方法:
domain.com/go/?custom_ref=001
の中へ
domain.com/go/?ref=001
htaccess rewrite を使用してください。
変更方法:
domain.com/go/?custom_ref=001
の中へ
domain.com/go/?ref=001
htaccess rewrite を使用してください。
特に柔軟性はありませんが、これは正確な問題に対して機能します。
RewriteEngine On
RewriteCond %{QUERY_STRING} ^ref=([0-9]*)
RewriteRule ^go/$ go/?custom_ref=%1 [QSA]
条件が一致するためにref
は、クエリ文字列の最初に来る必要があることに注意してください。ルールの[QSA]
(Query String Append)フラグは元のクエリ文字列を保持するため、渡された他の値が失われることはありません。
また、このコードは、.htaccessファイルがドキュメントルートにあることを前提としていることに注意してください。ファイルが他の場所にある場合は、を調整する必要がありますRewriteRule
。たとえば、.htaccessファイルが/go/.htaccessに配置されている場合は、次のように変更すると機能します。
RewriteRule . ?custom_ref=%1 [QSA]
これをより柔軟にしたい場合は、この質問への回答を確認してください。クエリ文字列内の1つの変数を変更し、他のすべてを保持するための構文が含まれています。
編集:
クエリ文字列でを置き換えるcustom_ref
には、次のコマンドを使用して、変数ref
を含むリクエストをリダイレクトできます。と他のルールのcustom_ref
間にこれを追加します。RewriteEngine On
RewriteCond %{QUERY_STRING} ^(([^&]*&)*)custom_ref=(.*)
RewriteRule ^go/$ /go/?%1ref=%3 [R=301,L]
これは、解決策というよりはパッチです。コードにアクセスできる場合は、代わりに変数名を修正することをお勧めします。