免責聲明:是的,我做了很多搜索。是的,我閱讀論壇。是的,我試着自己解決這個問題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對優先權問題也是正確的。 –