2016-09-28 50 views
0

我正在將ASPX站點移動到Wordpres - 從IIS服務器到Apache - 並且在查詢字符串重定向頁面時遇到問題。我查看了Apache文檔,並試圖使用mod_rewrite,但至今沒有運氣。爲什麼我的htaccess RewriteRule不能用於查詢字符串?

比如我想重定向這些頁面:

www.mysite /產品/ Product.aspx的azazaz = 324 $到 www.mysite /藍色的小部件/ widget7/ www.mysite /Product/Product.aspx?mapid=681$至 www.mysite/blue-widgets/widget82/ www.mysite/Product/Product.aspx?mapid = 841 $至 www.mysite/blue-widgets/widget82/

這裏是我在哪裏。我已經嘗試了幾次迭代,但無法使其工作。我開始認爲它可能與前幾個規則有關,這些規則是由服務器和Wordpress生成的。該網站是一個附加域,服務器將其視爲一個子域。

我的重寫是最後三個。任何想法爲什麼這些不工作?謝謝你的幫助。

<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

相關問題