2011-11-29 39 views
1

我作爲由WordPress生成此.htaccess文件和電子商務插件:如何在.htaccess中將特定的永久鏈接wordpress頁面重定向到另一個頁面?

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteRule ^.products/images/(\d+)/?\??(.*)$ /wp-content/plugins/shopp/core/image.php?siid=$1&$2 [QSA,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress 

我現在有重定向人誰訪問http://mydomain.com/golfhttp://mydomain.com/products/category/golf/

我有這些規則塊中的現有塊以上其中半工作:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^golf.*$ products/category/golf/ [R=permanent,L] 
RewriteRule ^cycling.*$ products/category/cycling/ [R=permanent,L] 
#...etc 
</IfModule> 

的問題是,如果例如有人類型​​,它仍然重定向。我試圖玩弄通配符等,但不能讓它只允許/高爾夫和/高爾夫/

也......是設置這些規則的最有效的方式嗎?我應該做某種如果或如果或如果然後重定向?

謝謝:) 本

回答

2

嘗試改變2個正則表達式:

RewriteRule ^golf(/.*)?$ products/category/golf/$1 [R=permanent,L] 
RewriteRule ^cycling(/.*)?$ products/category/cycling/$1 [R=permanent,L] 

(/.*)一個 「/」 或 「/某事」,而匹配?意味着它可能不在那裏。目標處的$ 1表示無論在括號中是否匹配。所以有人去http://mydomain.com/golf/foo.html將得到服務/prodducts/category/golf/foo.html

+0

完美,謝謝喬恩。我希望它只允許'高爾夫'和'高爾夫',而不是'高爾夫/任何',所以我將它改爲: RewriteRule ^高爾夫(/)?$產品/類別/高爾夫/ [R =永久,L ] –

相關問題