Apache .htaccess子文件夹、子域和附加域
这是我的设置Apache .htaccess子文件夹、子域和附加域,apache,.htaccess,Apache,.htaccess,这是我的设置 主域名:foo.com 子域:Sub.foo.com 附加域:bar.com 根目录上子域的目录结构如下: sub/-用于子域(默认) 现在,我在根目录中为bar.com创建了一个子文件夹 bar/-用于bar.com 并创建了以下规则 RewriteCond %{HTTP_HOST} bar.com RewriteCond %{REQUEST_URI} !bar/ RewriteRule ^(.*)$ bar/$1 [L] 结果将是 sub.foo.com-sub/ ba
- 主域名:foo.com
- 子域:Sub.foo.com
- 附加域:bar.com
sub/
-用于子域(默认)
现在,我在根目录中为bar.com创建了一个子文件夹
bar/
-用于bar.com
并创建了以下规则
RewriteCond %{HTTP_HOST} bar.com
RewriteCond %{REQUEST_URI} !bar/
RewriteRule ^(.*)$ bar/$1 [L]
结果将是
- sub.foo.com-sub/
- bar.com-酒吧/
- bar.com/bar-bar/(如何修复此问题?使其重定向到bar.com?)
- bar.com/sub-sub/(如何修复此问题?使其重定向到sub.foo.com?)
- foo.com/bar-bar/(如何修复此问题?使其重定向到bar.com?)
- foo.com/sub-sub/(如何修复此问题?使其重定向到sub.foo.com?)
编辑:请不要开始讲述虚拟主机,我无法访问此服务器上的httpd.conf主站点的
。htaccess
:
RewriteCond %{HTTP_HOST}
RewriteCond %{HTTP_HOST} www.foo.com
RewriteCond %{REQUEST_FILENAME} ^bar
RewriteRule ^bar/(.*)$ http://www.bar.com/$1 [R=301,L,QSA]
RewriteCond %{HTTP_HOST} www.foo.com
RewriteCond %{REQUEST_FILENAME} ^sub
RewriteRule ^sub/(.*)$ http://sub.foo.com/$1 [R=301,L,QSA]
其他两个站点,从子目录托管,不需要使用此设置尝试从类似bar.com/bar/…
的对象映射
在bar.com
网站中,您可以执行以下操作:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} ^bar/(.*)$
RewriteRule .* %1 [R=301,L,QSA]
RewriteRule ^bar/?$ / [R=301,L,QSA]
RewriteCond %{HTTP_HOST} www.bar.com
RewriteCond %{REQUEST_FILENAME} ^sub
RewriteRule ^sub/(.*)$ http://sub.foo.com/$1 [R=301,L,QSA]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} ^sub/(.*)$
RewriteRule .* %1 [R=301,L,QSA]
RewriteRule ^sub/?$ / [R=301,L,QSA]
RewriteCond %{HTTP_HOST} sub.foo.com
RewriteCond %{REQUEST_FILENAME} ^bar
RewriteRule ^bar/(.*)$ http://www.bar.com/$1 [R=301,L,QSA]
对于sub.foo.com
,您可以执行以下操作:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} ^bar/(.*)$
RewriteRule .* %1 [R=301,L,QSA]
RewriteRule ^bar/?$ / [R=301,L,QSA]
RewriteCond %{HTTP_HOST} www.bar.com
RewriteCond %{REQUEST_FILENAME} ^sub
RewriteRule ^sub/(.*)$ http://sub.foo.com/$1 [R=301,L,QSA]
RewriteBase /
RewriteCond %{REQUEST_FILENAME} ^sub/(.*)$
RewriteRule .* %1 [R=301,L,QSA]
RewriteRule ^sub/?$ / [R=301,L,QSA]
RewriteCond %{HTTP_HOST} sub.foo.com
RewriteCond %{REQUEST_FILENAME} ^bar
RewriteRule ^bar/(.*)$ http://www.bar.com/$1 [R=301,L,QSA]