2012-03-21 50 views
1

我試圖做一些相對簡單的.htaccess規則來301重定向一些URL。規則不匹配。以下是我有:Apache mod_rewrite .htaccess規則不匹配 - 轉義字符

RewriteEngine On 

RewriteBase/

# This works fine 
RewriteCond %{QUERY_STRING} ^id=2$ [NC] 
RewriteRule ^products\.php$ /? [R=301,NE,NC,L] 

# This doesn't match at all 
RewriteRule ^products/-Smart-Smoker-\'Storm\'-White-Manual-Electronic-Cigarette-\(510\)\.html http://www.smartsmoker.co.uk/products/-Smart-Smoker-Storm-White-Manual-Electronic-Cigarette-%28510%29.html [NC,R=301] 

# Neither does this 
RewriteRule ^products/Christmas-Cracker-%252d-FREE-Shipping\.html$ http://www.smartsmoker.co.uk/categories/Electronic-Cigarette-Kits/Breeze-Mini-Electronic-Cigarette/ [L,R=301] 

回答

0

最好的辦法當具有重寫劇是把它分解成最短的功能匹配,那麼就可以指出的是,上述條件可能會影響您想實際測試什麼擴大。話雖如此,我使用下面的最小示例我自己也看不出任何問題:

RewriteEngine on 
RewriteBase/
RewriteRule ^products/-Smart-Smoker-\'Storm\'-White-Manual-Electronic-Cigarette-\(510\)\.html$ /test.html [L] 

此外,您重定向到的URL不必被URL編碼。