[英]Redirect example.com to example.com/blog
我已经将网站上传到服务器上的子目录下,结构看起来像这样
根
- - 博客
--------。htaccess
- - 苹果
----。htaccess
现在,我在/blog/.htaccess文件中编写了一条规则,该规则会将用户重定向到
我通过添加以下规则来做到这一点。
RewriteEngine On
RewriteBase /blog/
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]
到目前为止,它的工作原理完全符合需求,现在真正的问题来了。 用户希望任何人在没有前一个博客的情况下访问该域时,都会添加/ blog /并将用户重定向到该博客站点,并且该规则在以下情况下不应影响任何子域的含义:
用户输入网址。
example.com
他应该被重定向到。
当他输入网址时。
apple.example.com
他应该重定向到
apple.example.com
现在,为了执行此操作,我正在编写以下规则,但是该规则不起作用,如下所示。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule (.*) https://example.com/$1 [R=301,L]
RewriteRule ^$ /blog/ [L]
我不知道我在做什么错。
我添加了太多详细信息,因为我认为博客目录中的.htaccess文件可能会引起问题。
尝试这个:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com
RewriteRule ^(.*)$ http://www.example.com/blog/$1 [L,R=301,NC]
让我知道它是否有效。
在@Twinkle的帮助下找到了问题,真正的问题是我正在添加
RewriteRule ^$ /blog/ [L]
由于明显的原因,我不需要删除该规则并将当前规则更改为以下规则,从而解决了我的问题。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule (.*) https://example.com/blog/ [R=301,L]
RewriteCond %{HTTP_HOST} ^www.example\.com$
RewriteRule (.*) https://example.com/blog/ [R=301,L]
希望有人能找到全部帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.