0

我正在重建我的整个网站,以前的版本只使用静态 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

我的网站的 URL 目录结构已经完全改变,我有很多页面在 google 中被索引,需要 301 到新的 URL。

我尝试将这些新的 301 指令添加到现有指令的末尾,.htaccess但最终我被重定向如下:

http://www.mysite.com/dir/newpage.html?q=oldpage.html

我不希望它最后有查询字符串,我该如何删除它?

4

1 回答 1

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
于 2013-07-26T17:58:37.323 回答