Apache .Htaccess-将子域重定向到根域

Apache .Htaccess-将子域重定向到根域,apache,.htaccess,rewrite,Apache,.htaccess,Rewrite,我知道这个问题在SO的对话中已经出现过几次,但是我确实认为我的问题是非常定制的,作为一名经验不足的apache htaccess编码人员,我不确定应该在哪里查找或正确询问什么 我的目标: 我的域名(www.mydomain.com) 我的目标(www.shop.mydomain.com) 当用户指向“我的域”时,服务器指向“shop”子文件夹,但这不会更改URL中可见的域 我的问题: 我已经“部分”实现了这一点,但是当我导航到另一个页面时,例如:/shop文件夹中的/about,我将收到一个40

我知道这个问题在SO的对话中已经出现过几次,但是我确实认为我的问题是非常定制的,作为一名经验不足的apache htaccess编码人员,我不确定应该在哪里查找或正确询问什么

我的目标:

我的域名
(www.mydomain.com)

我的目标
(www.shop.mydomain.com)

当用户指向
“我的域”
时,服务器指向
“shop
”子文件夹,但这不会更改URL中可见的域

我的问题:

我已经“部分”实现了这一点,但是当我导航到另一个页面时,例如:
/shop
文件夹中的
/about
,我将收到一个404错误,因为服务器正在查看
mydomain.com/about
,而不是
mydomain.com/shop/about

从外观上看,服务器正在查看根目录的
'shop'
,以及网站其余部分的实际根目录

我希望整个网站都能从
/shop
文件夹运行,但域名保持为
mydomain.com/about

我迷失了方向,无法实现这一目标。我当前的apache重写是:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$ [NC]
RewriteCond %{REQUEST_URI} !^/shop/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /shop/$1
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$ [NC]
RewriteRule ^(/)?$ shop/index.php [L]

有什么建议和帮助吗?:)谢谢。

请在
文档根目录下的
.htaccess
中尝试此代码:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.com$ [NC]
RewriteRule ^$ shop/index.php [L]

RewriteCond %{HTTP_HOST} ^(www\.)?mydomain\.com$ [NC]
RewriteRule (?!^shop/)^(.+)$ /shop/$1 [L,NC]

这实际上很有效。非常感谢。我对apache重写感到迷茫!