2013-04-21 50 views
0

我得到了我的.htaccess的问题在这里和altough我在网上搜索并尝试了很多东西,我找不到任何解决办法...的.htaccess重写规则似乎不起作用

我有一个WordPress的安装与启用永久链接。除此之外,我需要重写这个wordpress-安装中的另一个URL,它不属于WP。

如果用户浏览到http://www.URL.com/?page_id=30&tag=all&filterCategory=6\%23Jackets,我想要显示http://www.URL.com/jackets.html作为URL。还应该有可能直接浏览到http://www.URL.com/jackets.html

我的.htaccess看起来像这样

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

RewriteRule ^jacket\.html$ http://www.URL.com/?page_id=30&tag=all&filterCategory=6\%23Jackets [L] 

</IfModule> 
# END WordPress 

没有人有任何想法,为什么这不工作?

回答

0

WordPress重写规则通过WordPress将任何请求重定向到不存在的文件。负责这个的重写规则RewriteRule . /index.php [L]用[L]标记,表示没有更多的规则要在它之后被处理。为了使您的规则有效,它必须放在WordPress规则之前,但在行RewriteBase /之后。

+0

感谢您的想法,但规则不起作用,即使我把它放在“RewriteEngine On”和“RewriteBase /”之间。我还试图将它放在整个Wordpress-Block之上(在#BEGIN Wordpress之前),但这也不起作用(我在规则前使用了“RewriteEngine On”)。可能是因为特殊字符存在问题网址是什么? – user2304756 2013-04-24 06:56:11

+0

在使用MOD_REWRITE时,我没有遇到过特殊字符的问题,但这并不一定意味着它不是问题。另外,我可能不清楚我的意思 - 它需要放在'RewriteBase /'之后,但是在任何重写规则之前。另外,如果你不想改变域,'index.php?page_id = 30&tag = all&filterCategory = 6 \%23Jackets'可能是你的重写规则更好的目标。希望这可以帮助。 – TheSuccessor 2013-04-25 15:35:00