0

ページのURLに?print = 1のようなパラメータがある場合、クエリ文字列なしでこのページをそれ自体にリダイレクトするという条件を作成したいと思います。

例:

このページが欲しい:

http://sos-med.com/en/specific_page.html?print=1&ok=1 

tpリダイレクト(301)をクエリ文字列のない同じURLに:

http://sos-med.com/en/specific_page.html

私のコードは次のとおりです。

RewriteEngine On
RewriteCond %{QUERY_STRING} ^*print=*$ [NC]
RewriteRule ^(.*)$ %{REQUEST_URI}?

テストサーバーがないので、コードに問題がないか教えてください。

上記のコードは、ウェブサイトのすべてのページに対応しています。そして、そのルールを実装する前に、特定の1つのページへのリダイレクトを試してみたいと思います(私の例を参照)。
「specific_page.html」のみで機能するようにコードを変更するにはどうすればよいですか?

PHPコードではなく、.htaccessソリューションのみが必要です。

4

2 に答える 2

1

近くにいて、%{QUERY_STRING}正規表現が正しくなく、301リダイレクトフラグがありません。

RewriteEngine On
RewriteCond %{QUERY_STRING} ^print=.*$ [NC]
RewriteRule ^(.*)$ %{REQUEST_URI}? [L,R=301]

それを試してみてください。


ありがとう、そして単一の特定のページをリダイレクトしたい場合:sos-med.com/en/aaa.html?print=1&ok=1 to sos-med.com/en/aaa.html?– </ p>

次に、ルールが一致するものを変更します。

RewriteEngine On
RewriteCond %{QUERY_STRING} ^print=.*$ [NC]
RewriteRule ^en/aaa.html$ %{REQUEST_URI}? [L,R=301]
于 2012-08-15T22:18:26.763 に答える
0

代わりにこれを試してください:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*&)?print= [NC]
RewriteRule ^(.*)$ /$1? [L,R=301]
于 2012-08-15T22:18:42.307 に答える