0

htaccess を使用して 301 リダイレクトを作成する必要があります。

例 :

この URL (旧) を取得します: domain/page.html?pid=21&cid=730:pagetitle

(新規) にリダイレクト: http://www.domain.co.uk/page/section/pagetitle

私はこれを試しましたが、動作しません:(

##([0-9]+)?
RewriteCond %{QUERY_STRING} pid=21&cid=[0-9]{1,5}:(.*)
RewriteRule ^/page.html http://www.domain.co.uk/page/section/%1? [NC,R=301]

pagetitle と cid は動的で、時間とともに変化します。

理想的には、古い URL を取得して、pagetitle (domain/page.html?pid=2&cid=730:pagetitle) 以外のすべてを削除し、これをリダイレクト URL のクエリ文字列として使用したい....

ありがとう

アップデート:

より多くの例:

から:

http://www.domain.co.uk/page.html?pid=1&cid=25:helloworld

http://www.domain.co.uk/page.html?pid=1&cid=34:hellonew-world

http://www.domain.co.uk/page.html?pid=1&cid=21:1pagetitle

に:

http://www.domain.co.uk/page/section/helloworld

http://www.domain.co.uk/page/section/hellonew-world

http://www.domain.co.uk/page/section/1pagetitle

注: セクション = pid 1

Omega または mine の書き換えルールを使用した結果は、現時点では 404 ページになります。

クエリ文字列の最後の部分だけが必要です-cid(ページタイトル)、pidは重要ではありません。

4

2 に答える 2

0

あなたのバージョンでは {1,5} を使用することが問題かもしれません。その構文は使用できない場合があります。

しかし、このバージョンは問題なく動作するはずです:

RewriteCond  %{QUERY_STRING}  ^pid=21&cid=[0-9]+:(.*)$
RewriteRule  ^page\.html      http://www.domain.co.uk/page/section/%1 [NC,R=301,L]
于 2015-09-11T14:09:11.320 に答える
0

[NC,R=301]使用する代わりに、クエリ文字列パラメーターを保持するには[NC,R=301,QSA]

RewriteCond %{QUERY_STRING} cid=[0-9]{1,5}:(.*)
RewriteRule ^/?page\.html$ http://www.domain.co.uk/page/section/%1 [NC,R=301,QSA]
于 2012-09-22T20:41:33.960 に答える