IISサーバーからApacheにASPXサイトをWordpresに移動しようとしていますが、リダイレクトするクエリ文字列を含むページを取得する際に問題が発生しています。私はApacheのドキュメントを調べ、mod_rewriteを使用しようとしていますが、これまでのところ運がありません。 ?htaccess RewriteRuleがクエリ文字列で機能しないのはなぜですか?
www.mysite /製品/ Product.aspx mapid = 324 $へ www.mysite /青のウィジェット/ widget7/ www.mysite:
たとえば、私はこれらのページをリダイレクトしたいと思います/product/product.aspx?mapid=681$〜 www.mysite/blue-widgets/widget12/ www.mysite/Product/Product.aspx?mapid = 841 $〜 www.mysite/blue-widgets/widget82/
ここに私がいる場所があります。私はこれをいくつか反復してみましたが、うまく動作させることはできません。私はそれがサーバーとWordpressによって生成された最初のいくつかのルールとは関係があるかもしれないと思っています。このサイトはアドオンドメインであり、サーバーはサブドメインのように扱います。
私の書き換えは最後の3つです。なぜこれらがうまくいかないのか?助けてくれてありがとう。私は次のように動作すると信じて
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /~username/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /~username/mysite/index.php [L]
RewriteCond %{QUERY_STRING} ^mapid=324$ [NC]
RewriteRule ^/Product/Product\.aspx(.*)$ ^https://www.mysite/blue-widgets/widget7/? [L,R=302,NC]
RewriteCond %{QUERY_STRING} ^mapid=681$ [NC]
RewriteRule ^/Product/Product\.aspx(.*)$ ^https://www.mysite/blue-widgets/widget12/? [L,R=302,NC]
RewriteCond %{QUERY_STRING} ^mapid=841$ [NC]
RewriteRule ^/Product/Product\.aspx(.*)$ ^https://www.mysite/blue-widgets/widget82/? [L,R=302,NC]
</IfModule>
操作の順序は重要ですか?ルールをRewriteBaseの上に移動しますか?まだ動作していないようですが、私はもう少し詳しく説明します。ありがとう。 – jshock
私もあなたのルールを変更しました。私が持っているものを正確に試してください。 – Fencer04
ありがとうございます。それはうまくいった。 – jshock