今天又比较蛋疼,想把其中一个二级目录下的网站更换为二级域名。以前科研分享是在二级目录下,现在想直接转换成二级域名。一是看着简洁,另外减少主站数据库的大小。但是又不想以前的用户打开二级目录的时候出现 404 错误,搜索了半天,终于知道 Apache Rewrite 怎样实现 URL 的跳转和域名跳转了。
替换域名
这个简单,网上很多,无非是导出数据库,在新网站导入数据库,然后替换旧域名即可。
在新网站导入原来的数据,然后替换域名即可。
- UPDATE wp_options SET option_value = replace(option_value, ‘https://www.howsci.com/info/’, ‘http://info.howsci.com/’) WHERE option_name = ‘home’ OR option_name = ‘siteurl’;
- /*此语句更改siteurl和home中的链接为新域名,要想正常访问后台,老老实实改吧。只有完成这一步你才可以顺利进入后台,否则即使你输入密码,也会自动跳转到原来的老域名。*/
- UPDATE wp_posts SET guid = replace(guid, ‘https://www.howsci.com/info/’,’http://info.howsci.com/’);
- /*此语句更改wordpress的默认的链接结构*/
- UPDATE wp_posts SET post_content = replace( post_content, ‘https://www.howsci.com/info/’,’http://info.howsci.com/’);
- /*此语句更改所有发布中的内链接*/
- UPDATE wp_comments SET comment_content = replace(comment_content, ‘https://www.howsci.com/info/’, ‘http://info.howsci.com/’);
- /*更改评论中的内链接*/
- UPDATE wp_comments SET comment_author_url = replace(comment_author_url, ‘https://www.howsci.com/info/’, ‘http://info.howsci.com/’);
- /*更改评论中的站长的链接*/
301 URL 和域名跳转
在原来的网站,打开 .htaccess 文件,写入如下内容
- RewriteEngine On
- RewriteCond %{REQUEST_URI} ^/info/
- RewriteRule ^info/(.*) https://www.howsci.com/$1 [R=permanent,L]
- RewriteRule ^(.*) http://info.howsci.com/$1 [R=permanent,L]
关天这个中转,找了很多,综合了很多人的说法,最后来自哪里也不记得了。我也不知道这样写有什么不妥没有,希望有大神可以指导一下。
RewriteRule ^info/(.*) http://www,howsci.com/$1 [R=permanent,L]
www后边不应该是.吗,怎么是个逗号
RewriteRule ^info/(.*) http://www,howsci.com/$1 [R=permanent,L]www后边不应该是.吗,怎么是个逗号
插,是我写错了,呵呵。谢谢谢谢提醒