通过HTACCESS进行网址重定向

时间:2016-06-11 15:59:49

标签: php .htaccess redirect mod-rewrite

我正在开设一个我刚购买的域名博客,并希望将其他博客设置为子域名。

现在,如果这个辅助博客起飞,我希望它在不久的将来能够起作用,我希望将它设置在它自己的域上,但我想知道重定向有多么容易的人是多么容易现有的新网址。

我有一个像这样的文件夹结构:

domain.com >>> htaccess . index.php . about.php . blog/ . features/

我的BlogFeatures文件夹还包含htaccess文件及其自己的index页面+其他相关的php页面。

我想知道您是否可以仅使用位于主htaccess文件夹下的主domain.com文件将人员重定向到新域,或者您是否必须编辑内部的htaccess每个子文件夹。

这样做的最佳方式是什么,在某种程度上,如何成功完成?

2 个答案:

答案 0 :(得分:1)

是的,您需要做的就是使用以下内容:

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

因此,当有人访问旧域时,它将指向新域。

答案 1 :(得分:0)

将子域sub.mydomain.com移至newdomain.com后,您可以使用htaccess mod_rewrite模块将查询从子域重定向到新域。您可以将规则放在控制旧域的顶级htaccess文件中。使用上面的示例域,它将类似于:

Options +FollowSymLinks
# turn on mod_rewrite
RewriteEngine On
RewriteBase /

# only redirect if query is for the sub domain (non case-sensitive match)
RewriteCond %{HTTP_HOST} ^sub\.mydomain\.com$ [NC]

# rewrite all urls (that match the subdomain host) to new domain, 
# be sure to include the original path and query string
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [QSA,L,R=301]

如果您的新域名没有使用www前缀,请将其从重写规则中删除。 QSA告诉服务器发送查询字符串(?字符后的url的一部分)。 L表示停止处理htaccess文档。 R=301表示告诉浏览器,从那时起,只要用户尝试转到newdomain.com,就可以直接转到sub.mydomain.com