我对使用 .htaccess 比较陌生,除了我在网上阅读的内容之外,我从未做过任何编码。我正在使用 Bluehost,我想将我的博客子目录重定向到子域。示例:我想将 www.example.com/blog 重定向到 blog.example.com。
我已经有代码可以始终添加 www。到根文件夹中我的博客地址的开头,但我不知道如何使用.htaccess中的代码完成上述重定向。任何帮助,将不胜感激!
我对使用 .htaccess 比较陌生,除了我在网上阅读的内容之外,我从未做过任何编码。我正在使用 Bluehost,我想将我的博客子目录重定向到子域。示例:我想将 www.example.com/blog 重定向到 blog.example.com。
我已经有代码可以始终添加 www。到根文件夹中我的博客地址的开头,但我不知道如何使用.htaccess中的代码完成上述重定向。任何帮助,将不胜感激!
如今,许多网络主机都在其管理面板中提供了一种简单的子域创建实现方式。你只需要去那里,选择你的子域名,然后将它指向你树中的一个目录。
如果你不能,那么它会有点复杂(你需要将该子域解析为你的服务器 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)要回答上面的问题,这个重写应该解决它:
RewriteEngine on
RewriteCond %{REQUEST_URI} !\.
RewriteRule ^/blog$ http://blog.example.com [R=302,L]
2)但是,我认为这本身还不够,您还需要更改 DNS,以便 blog.example.com 指向正确的服务器,这可以通过类似这样的 cname 来完成:
blog.example.com CNAME example.com TTL 1080
(不完全是它的外观,但使用您的 DNS 网络界面进行设置)。
你试过这个吗?
RewriteEngine on
RewriteBase /
RewriteRule ^/blog/(.*)$ http://blog.subdomain.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^check.domain.info$
RewriteCond %{REQUEST_URI} !^/check/
重写规则 (.*) /check/$1
要将 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]