2011-04-08 188 views
0

我們有一個我們正在嘗試啓動的Magento網站。我們有大量的URL重寫,但是當我將其添加到.htaccess文件時,網站不會加載。Magento htaccess 301重定向

很顯然,我做錯了什麼,這裏是我使用的代碼:

RewriteCond %{QUERY_STRING} ^StoreLevel=3&PrevStoreLevel=1&productid=6067&Level1=155&p=5&term=&BrowseBy=0$ 
RewriteRule ^store\.php$ http://oursite.com/zproduct.html? [R=301,L] 

任何意見是極大的讚賞。

+0

什麼錯誤信息你好嗎? – 2011-04-08 00:51:28

+0

嘿,是的,這可能會有幫助的信息,我得到:500內部服務器錯誤 – Jason 2011-04-08 00:57:39

+1

打開重寫錯誤記錄併發布你得到的輸出。 'RewriteLog /var/log/httpd/rewrite.log RewriteLogLevel 9' – 2011-04-08 01:21:10

回答

0

是否啓用了mod_rewrite?你可以讓.htaccess文件多一點防彈一些條件語句,就像這樣:

<IfModule mod_rewrite.c> 
    RewriteCond %{QUERY_STRING} ^StoreLevel=3&PrevStoreLevel=1&productid=6067&Level1=155&p=5&term=&BrowseBy=0$ 
    RewriteRule ^store\.php$ zproduct.html [R=301,L] 
</IfModule> 

另外請注意,你不需要把在完整的URL,如果您重定向停留在同一個域。

順便說一下,如果你只是在做基本的字符串匹配,那麼使用正則表達式沒有意義。有一個page on the Apache wiki這給替代的簡要概述,以使用正則表達式,你可能想是這樣的:

RewriteCond %{QUERY_STRING} =StoreLevel=3&PrevStoreLevel=1&productid=6067&Level1=155&p=5&term=&BrowseBy=0 
+0

謝謝!這解決了我的問題,使用完整的URL似乎也導致了probs。現在關於更有效的格式化,我們有1000個,所以我們這樣做是關鍵。這看起來適合你嗎? 的RewriteCond%{QUERY_STRING} = Store.php?StoreLevel = 3&PrevStoreLevel = 1&的productid = 6067&級別1 = 155&P = 5&術語=&BrowseBy = 0 重寫規則zproduct.html [R = 301,L] Jason 2011-04-08 16:07:32

+0

否,QUERY_STRING只包含匹配的查詢字符串,所以你應該省略Store.php?來自RewriteCond。否則它對我來說很好。如果我的答案解決了您的問題,請接受它! ;) – ZoFreX 2011-04-09 01:59:44