我想重写使用index.php的请求,这是非常标准的并且有效。
问题是存在旧的且现在无效的链接,其中包括index.php,我想将它们重定向到我网站的根网址。
潜在的重复内容包括:Rewrite URL to index.php but avoid index.php in the URL,但提到的答案对我不起作用。
RewriteEngine on
# This results in a redirect loop
#Redirect 301 /index.php http://domain.com
# This gets me a 500 error
# RewriteCond %{THE_REQUEST} ^GET\ /index\.php/?([^ ]*)
# RewriteRule ^index\.php/?(.*) / [L,R=301]
# Push www traffic to base domain. <<= Works
RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
# Final rewrite to include index.php <<= Works
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule /?([A-Za-z0-9_-]+)/?$ index.php?id=$1 [QSA,L]
网址:http://domain.com/index.php/component/fsf/?view=faq应该无效并且应该返回404错误但是由于我当前的重写规则,网站访问者将看到主页面。我想用301将其重定向到主页面,以便可以从搜索索引中删除它。 任何帮助将不胜感激。
答案 0 :(得分:0)
将您的THE_REQUEST
规则更改为
RewriteCond %{THE_REQUEST} ^GET\ /index\.php(/.*) [NC]
RewriteRule ^ /? [L,R=301]