免责声明:是的,我做了很多搜索。是的,我阅读论坛。是的,我试着自己解决这个问题30分钟,它只是不工作,所以我正在寻求帮助。Htaccess重写不起作用
一个简单的htaccess重写规则。这是我在用的规则:
RewriteRule ^downloads/([0-9])/$ /downloads?ID=$1 [NC,L]
基本上我期待的是
www.url.com/downloads/1
运行的/downloads?ID=1
请求出于某种原因,我经常只是得到一个错误“没有发现”在我的网站上。运行一个WordPress的网站。其余的htaccess是低于
# Use PHP5 Single php.ini as default
AddHandler application/x-httpd-php5s .php
# 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]
</IfModule>
# END WordPress
redirect 301 "/report2012/trends_2012/" "/2012-swanepoel-trends-report"
redirect 301 "/report2011/trends_2011/" "/2011-swanepoel-trends-report"
redirect 301 "/report2010/trends_2010/" "/swanepoel-trends-report"
redirect 301 "/report2009/trends_2009/" "/swanepoel-trends-report"
redirect 301 "/social_media/" "/social-media-report"
redirect 301 "/speaking-engagements/" "/trends-keynote"
RewriteRule ^item/([0-9])/$ /downloads?ID=$1 [NC,L]
请帮助 - 我不知道为什么它不工作。谢谢。
30分钟不是那么长:)但是它在'RewriteRule'之前的最后一行失败。 /index.php [L]',因为它有附加的'last'标志。你应该放置你的规则_before_ wordpress规则 – giorgio
一旦重定向到'/ downloads?ID = 1','.htaccess'会再次加载并尝试匹配新的URL。它将匹配'RewriteRule。 /index.php [L]',你需要通过将'RewriteRule^index \ .php $ - [L]'改为'RewriteRule ^(index \ .php | downloads)$ - [L]'来停止它。 @giorgio对优先权问题也是正确的。 –