wordpress两个域名301重定向代码怎么解决

wordpress两个域名301重定向代码怎么解决,第1张

Wordpress的两个301重定向方法

1.比较简单的域名301重定向:即将A定向到B 以下为引用的内容:

$the_host = $_SERVER['HTTP_HOST']//取得当前域名

if($the_host != 'www.bluefate.org')//判断获取的这个域名是不是你想要的(即定向后的域名)

{

header("HTTP/1.1 301 Moved Permanently")//发出301头部

header("Location:域名) //跳转到你希望的域名exit()

}

 将上面的代码放入到根目录的index.php的最开始的地方就行了,实现的效果是原域名下的所有地址都将转跳到新域名的首页。

2.另一种比较麻烦一点,不过效果会好一点:

他可以将原域名下的所有链接地址定向到对应新域名的地址,即:域名变化,但是参数不变的。代码如下:

以下为引用的内容:

$the_host = $_SERVER['HTTP_HOST']//取得当前域名

if(strtolower($the_host) != 'www.bluefate.org')//把这里的域名换上你想要的

{ $URIRedirect=$_SERVER['REQUEST_URI']//获取域名后的参数

if(strtolower($URIRedirect)=="/index.php")//判断是参数为/index.php就显示为/

{

$URIRedirect="/"

}

header("HTTP/1.1 301 Moved Permanently")//发出301头部

header("Location: 你希望的地址格式")跳转到你希望的地址格式

exit()

}

以上两种方法,不仅适合wordpress的程序,一般PHP程序都可以使用的。写到这里其实我的博客的301已经做好了,我用的是第二种。下面的一种方法,有兴趣的也可以研究一下啦。

3

在linux并且支持rewrite就可以通过.htaccess来设置了,代码如下:

以下为引用的内容:

以下为引用的内容:

# BEGIN WordPress

<IfModule mod_rewrite.c>

Options +FollowSymLinks

RewriteEngine on

rewritecond %{http_host} ^www.a.com[nc]

rewriterule ^(.*)$ http://www.b.com/$1 [L,R=301]

</IfModule>

# END

用的是Apache 2.2 / Linux Mint13 / wordpress 3.4.1.

网上的解决办法都说只要在文件/etc/apache2/ports.conf中添加如下行:

NameVirtualHost *:1234

Listen 1234

然后在目录/etc/apache2/sites-available为wordpress站点新建一个virtual host:

<VirtualHost *:1234>

ServerName wordpress.com

ServerAdmin webmaster@wordpress.com

DocumentRoot /home/tristan/workspace/wordpress

<Directory />

Options FollowSymLinks

AllowOverride None

</Directory>

<Directory /home/tristan/workspace/wordpress/>

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

allow from all

</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

<Directory "/usr/lib/cgi-bin">

AllowOverride None

Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch

Order allow,deny

Allow from all

</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,

# alert, emerg.

LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"

<Directory "/usr/share/doc/">

Options Indexes MultiViews FollowSymLinks

AllowOverride None

Order deny,allow

Deny from all

Allow from 127.0.0.0/255.0.0.0 ::1/128

</Directory>

</VirtualHost>

然后把wordpress.com名称解析添加到/etc/hosts文件中,

127.0.0.1 wordpress.com

这样当域名解析时会直接把wordpress.com解析为127.0.0.1,而不是公网上的那个真正的wordpress官网的IP地址。

我试了以后在浏览器中输入http://wordpress.com:1234,仍然收到301 (permanent removed)错误代码,然后直接跳转到apache服务器的默认index页面。

这个需要打开浏览器的脚本debugger,然后检测请求发送与响应。

然后,我用netstat检测端口有没有打开,发现端口已经打开了。

然后我又用telnet尝试连接http://wordpress.com:1234,

telnet http://wordpress.com 1234

GET / HTTP/1.0

(注意,输完后要按两次回车)

可以得到响应。

开始一直以为apache2没配对,看了那个官方文档,英文的,中文的都看了,没发现有啥不对劲。后来又怀疑端口是不是有问题,换了其他端口,也没发现问题。

在网上找了半天,终于发现是wordpress的配置8对。天杀的,网上的那些答案太抽象了。

原来要再wp-config.php文件中修改两个变量的值:

define('WP_SITEURL', 'http://wordpress.com:1234')

define('WP_HOME', 'http://wordpress.com:1234')

这两个全局变量需要比较新的wordpress,应该版本大于2.2哈。如果不是的话,那就直接修改数据库中表wp_options。

update wp_options set option_value=N'http://wordpress.com:1234' where option_name='siteurl'

update wp_options set option_value=N'http://wordpress.com:1234' where option_name='home'


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/601221.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-10
下一篇2023-07-10

发表评论

登录后才能评论

评论列表(0条)

    保存