我正在重建我的整个网站,以前的版本只使用静态html页面,并且是管理的噩梦。
在新网站中,我已经拥有.htaccess
,内容如下:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /MySite/?q=$1
它通过PHP重写URL。
然而,我还需要做的是添加这样的行:
Redirect 301 /oldpage.html http://www.mysite.com/dir/newpage.html
Redirect 301 /oldpage2.html http://www.mysite.com/dir/newpage2.html
Redirect 301 /oldpage3.html http://www.mysite.com/dir/newpage3.html
我网站的网址目录结构已经完全改变,我在google中有很多网页索引,需要将它们填入新网址。
我尝试将这些新的301指令添加到现有.htaccess
的末尾,但最后我被重定向到这样:
http://www.mysite.com/dir/newpage.html?q=oldpage.html
我不希望它最后有查询字符串,我该如何删除它?
答案 0 :(得分:1)
只需将它们放在带有L
指令的主重定向之前:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^oldpage\.html$ /dir/newpage.html [R=301,NC,L]
RewriteRule ^oldpage2\.html$ /dir/newpage2.html [R=301,NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /MySite/?q=$1