2016-09-28 25 views
0

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> 

答えて

1

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^mapid=324$ [NC] 
RewriteRule /Product/Product\.aspx https://www.example.com/blue-widgets/widget7/? [L,R=302,NC] 

RewriteCond %{QUERY_STRING} ^mapid=681$ [NC] 
RewriteRule /Product/Product\.aspx https://www.example/blue-widgets/widget12/? [L,R=302,NC] 

RewriteCond %{QUERY_STRING} ^mapid=841$ [NC] 
RewriteRule /Product/Product\.aspx https://www.example/blue-widgets/widget82/? [L,R=302,NC] 

RewriteBase /~username/ 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /~username/mysite/index.php [L] 

をより良い他の人のために説明するために、ルールの順序は重要です。 WordpressのルールはRewriteBaseを変更し、URLを変更するので、.aspxページのルールは一番下にあれば決して打たれません。

+0

操作の順序は重要ですか?ルールをRewriteBaseの上に移動しますか?まだ動作していないようですが、私はもう少し詳しく説明します。ありがとう。 – jshock

+0

私もあなたのルールを変更しました。私が持っているものを正確に試してください。 – Fencer04

+0

ありがとうございます。それはうまくいった。 – jshock

関連する問題