繁体   English   中英

将example.com重定向到example.com/blog

[英]Redirect example.com to example.com/blog

我已经将网站上传到服务器上的子目录下,结构看起来像这样

- - 博客

--------。htaccess

- - 苹果

----。htaccess

现在,我在/blog/.htaccess文件中编写了一条规则,该规则会将用户重定向到

https://www.example.com/blog/

我通过添加以下规则来做到这一点。

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

他应该被重定向到。

https://www.example.com/blog/

当他输入网址时。

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM