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

Php 将example.com重定向到example.com/blog,php,apache,.htaccess,redirect,mod-rewrite,Php,Apache,.htaccess,Redirect,Mod Rewrite,我上传了我的网站在我的服务器上的一个子目录下的结构是这样的 根 ----博客 --------.htaccess ----苹果 ----.htaccess 现在,我在我的/blog/.htaccess文件中编写了一条规则,它将用户重定向到 为此,我添加了以下规则 RewriteEngine On RewriteBase /blog/ RewriteCond %{HTTP_HOST} !^www\. [NC,OR] RewriteCond %{HTTPS} !on RewriteCond %{

我上传了我的网站在我的服务器上的一个子目录下的结构是这样的

----博客

--------.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/并将用户重定向到博客站点,并且此规则不应影响任何子域,如果

用户输入url

example.com

他应该被重新安排去工作

当他输入url时

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]
让我知道它是否有效。

试试这个:

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]

希望有人能找到完整的帮助。

在@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]

希望有人能找到完整的帮助。

不,先生,它不起作用,但通过从重写规则中删除NC,我仍然可以为您提供+1帮助您找到问题。谢谢不,先生,它不起作用,但是通过从重写器中删除NC,规则对我起作用。我仍然会给你+1,让你帮我找到问题。非常感谢。