Apache .Htaccess-将子域重定向到根域
我知道这个问题在SO的对话中已经出现过几次,但是我确实认为我的问题是非常定制的,作为一名经验不足的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
(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重写感到迷茫!