0

ユーザーを url から index.php にリダイレクトすることは可能http://localhost/welcome?url=1&another=2ですか?another=2&url=welcome? つまり、解析された部分の前にすべてのクエリ文字列を配置したいと思います。出来ますか?

私はこのようなことができることを知っています: RewriteRule ^(.*)$ index.php?%{QUERY_STRING}&url=$1 [QSD,L] を使用して php で URL をキャッチしますが$_SERVER[ 'REDIRECT_QUERY_STRING' ]、GET 配列からクエリ文字列を取得したいです。

index.phpGET だけを行うと、 (ファイル名) に等しい URL を取得し、フラグを に変更するとQSA、すべてのリダイレクトの後にクエリ文字列が追加されます...

何か案は?

-- 編集 --
いくつかの質問を確認しましたが、これはループが原因であることがわかりました。私はこれを行いましたが、誰かがこの問題を解決する方法をもっとよく考えているかもしれません。

RewriteCond %{QUERY_STRING}  !&rw=1$ [NC]
RewriteRule ^(.*)$           index.php?%{QUERY_STRING}&url=$1&rw=1 [QSD,L]
4

1 に答える 1

1

ユーザーを url から index.php にリダイレクトすることは可能http://localhost/welcome?url=1&another=2ですか?another=2&url=welcome?

はい、ルート ディレクトリの .htaccess ファイルでこれを試すことができます。

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}    !index\.php               [NC]
RewriteCond %{QUERY_STRING}   ^url=1&([^=]+)=([\d]+)/?  [NC]
RewriteRule ^(.*)     /index.php?%1=%2&url=$1?          [NC,L]

サイレント マップ:

http://localhost/par1?url=1&par2=val2

に:

http://localhost/index.php?par2=val2&url=par1

ここで、 par1par2、および数値val2は動的文字列です。

永続的なリダイレクトの場合、[NC,L] を [R=301,NC,L] に置き換えます。

于 2013-03-19T14:52:57.153 に答える