0

これは簡単なはずですが、問題を解決できませんでした。誰かにとっては秒単位の答えだと確信しています。

htaccess ファイルを次のように書き直しました。

RewriteCond %{THE_REQUEST} \ /product\.php\?categoryfilename=([A-Za-z0-9-%.]+)&category=([A-Za-z0-9-%.]+)&id=([A-Za-z0-9-]+)
RewriteRule ^ /%3-P.html? [R=301,L]

次のように入力すると、書き換えが機能します。

www.mysite.co.uk/product.php?categoryfilename=all-products.php&category=All%20products&id=MY-PRODUCT

次の場所にリダイレクトします。

http://www.mysite.co.uk/MY-PRODUCT-P.html

それから私は単純なリダイレクトであるべきものを持っています:

リダイレクト 301 /MY-PRODUCT-P.html http://www.mysite.co.uk/MY-PRODUCT-123-P.html ?

これは静的リダイレクトである必要がありますが、厄介な ? 結果の最後まで。

? を削除すると、? リダイレクトの最後から、最初の rewriterule の元の乱雑なパス名から残った php 変数が追加されます

どうもありがとう

4

1 に答える 1

0

ディレクティブをQUERY_STRING使用して一致または操作することはできません。Redirect代わりに mod_rewrite を使用してください。このコードを次の場所に配置しますDOCUMENT_ROOT/.htaccess

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/product\.php\?categoryfilename=([^&]*)&category=([^&]*)&id=([^&\s]*)
RewriteRule ^ /%3-P.html? [R=301,L,NE]

RewriteRule ^(MY-PRODUCT)-(P\.html)$ /$1-123-$2? [L,NC,R=301]
于 2013-10-17T07:16:19.683 に答える