0

我想问你一个关于 301 URL 重定向的问题。所以,我有一个网站,它以前的 URL 曾经是:

http://www.sample.com/tutorials.php?name=sample

但是,现在是:

http://www.sample.com/tutorials/programming/sample.php

因此,您可以得出结论,新 URL 的语法是这样的:

http://www.sample.com/tutorials/(name of the category)/(value of the variable).php

我一直在玩弄 301 重定向,但是当我使用此代码时出现 500 内部服务器错误:

RewriteEngine On
RewriteCond %{COND ^tutorials.php?name=sample$ HTTP/1.1} ^[A-Z]{3,9}\ /tutorials\.php\?name=([^&\ ]+)
RewriteRule ^ /tutorials/programming/%1.php [L,R=301]

我还尝试创建自己的 301 重定向代码,它没有给我 500 内部服务器错误,但我不知道它是否有效(我无法在本地主机上测试它,因为搜索引擎不索引本地主机)。这里是 :

RewriteEngine On
Redirect 301 /tutorials.php?name=$1 http://www.sample.com/tutorials/programming/(.+)\.php

所以,如果我上面的代码好于好,但如果不是,有人可以解释(请尽可能缓慢和详细地)如何将我的旧网站 301 重定向到我的新网站。正如我所提到的,我使用动态网站,并且正在使用 .htaccess 文件 (mod_rewrite) 进行重写。

我试图尽可能详细。如果您需要更多详细信息,请随时询问。

4

1 回答 1

1

您必须将旧链接重定向到新域。这就是你可以做到的。

使用 htaccess

使用以下代码创建一个 .htaccess 文件,它将确保您旧域的所有目录和页面都将正确重定向到您的新域。.htaccess 文件需要放在你旧网站的根目录下(即你的索引文件所在的同一个目录)

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L] 

除了重定向之外,我建议您联系每个反向链接站点以修改其反向链接以指向您的新网站。

注意:这种 .htaccess 重定向方法仅适用于启用了 Apache Mod-Rewrite 模块的 Linux 服务器。

更多方法请参考这里

编辑:

使用以下代码创建一个 .htaccess 文件,它将确保所有进入 domain.com 的请求都将被重定向到 www.domain.com .htaccess 文件需要放在您旧网站的根目录中(即放置索引文件的同一目录)

Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc] 
于 2012-09-15T12:06:14.630 回答