镜像目录与apache htaccess

时间:2012-07-09 22:30:24

标签: apache .htaccess

是否可以使用apache htaccess文件镜像directorys内容?我正在使用cpanel虚拟主机,所以没有root访问权限,并希望避免在我的主机帐户上有两个相同文件的副本。我想要做的是有两个子域,例如:

files.abc.com files.123.com

abc.com和123.com将是不同html的单独网站,但是当您访问文件子域时,它们将是相同的。如果你理解我的意思,我希望文件子域显示相同的目录?关于如何实现这一目标的任何其他建议将不胜感激。提前谢谢。

1 个答案:

答案 0 :(得分:1)

这取决于您如何设置2个域和托管。在不知道任何细节的情况下执行此操作的一种简单方法是使用内部代理将其指向另一个,方法是将其放在另一个域的.htaccess文件中(其中托管files.abc.com):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^files\.abc\.com$ [NC]
RewriteRule ^(.*)$ http://files.123.com/$1 [P,L]

在这里,我们在files.123.com的主机中有文件,这意味着我们可以转到http://files.123.com/some/file.txt。但是使用此规则,您可以转到http://files.abc.com/some/file.txt,它将在内部代理到123.com主机。

如果两个域都指向同一主机,并且说您有123.com的规则或cpanel子域设置:

RewriteCond %{HTTP_HOST} ^files\.123\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /here-are-where-123.com-files-really-are/$1 [L]

或cpanel中的一些等效设置。无论哪种方式,对files.123.com的请求都由目录/here-are-where-123.com-files-really-are/提供。您只需要包含一组规则以适应其他文件域,并将它们放在文档根目录中的.htaccess文件中:

RewriteCond %{HTTP_HOST} ^files\.abc\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /here-are-where-123.com-files-really-are/$1 [L]