使用htaccess将子目录重定向到子域

时间:2012-09-13 22:49:50

标签: .htaccess mod-rewrite bluehost

我使用.htaccess比较新,除了我在网上看到的内容之外,我从未做过任何编码。我正在使用Bluehost,我想将我的blog子目录重定向到子域。示例:我想将www.example.com/blog重定向到blog.example.com。

我已经有代码可以随时添加www。到根文件夹中我的博客地址的开头,但我不知道如何使用.htaccess中的代码完成上述重定向。任何帮助将不胜感激!

5 个答案:

答案 0 :(得分:6)

如今,许多Web主机都在其管理面板中轻松实现了子域创建。您只需要去那里,选择子域名,然后将其指向树中的目录。

如果你不能,那么它会更复杂一点(你需要将该子域解析为你的服务器ip,配置一些虚拟主机等等)你可能没有足够的权限来做到这一点(除非你在专用服务器上。)

修改2

要将请求重定向到www.example.com/blog到blog.example.com,请尝试以下操作:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteRule ^blog/(.*)$ http://blog.example.com/$1 [L,QSA,R=301]

RewriteCond %{HTTP_HOST} ^blog\.example\.com$
RewriteCond %{REQUEST_URI} !^blog/
RewriteRule ^(.*)$ /blog/$1 [L,QSA]

答案 1 :(得分:1)

你试过这个吗?

RewriteEngine on
RewriteBase /
RewriteRule ^/blog/(.*)$ http://blog.subdomain.com/$1 [R=301,L]

答案 2 :(得分:1)

我想加两分钱,

1)回答上面的问题,这个重写应该解决它:

RewriteEngine on
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^/blog$ http://blog.example.com [R=302,L]

2)但是,我认为这本身还不够,你还需要更改DNS,以便blog.example.com指向正确的服务器,这可以通过类似于此的cname来完成: / p>

blog.example.com  CNAME example.com TTL 1080

(不完全是它的外观,但使用你的DNS网络界面进行设置)。

答案 3 :(得分:0)

RewriteCond%{HTTP_HOST} ^ check.domain.info $

RewriteCond%{REQUEST_URI}!^ / check /

RewriteRule(。*)/ check / $ 1

答案 4 :(得分:0)

要将subdomain1,subdomain2和directory3重定向到具有HTTPS://的目录,请使用以下代码:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^subdomain1.example.com [OR]
RewriteCond %{HTTP_HOST} ^subdomain2.example.com [OR]
RewriteCond %{HTTP_HOST} ^example\.com/subdomain3 [NC]
RewriteRule ^(.*)$ https://example.com/subdirectory/$1 [R=301,L]