是否可以使用 apache htaccess 文件镜像目录内容?我正在使用 cpanel 进行虚拟主机,因此没有 root 访问权限,并且希望避免在我的主机帐户上拥有相同文件的两个副本。我想要做的是拥有两个子域,例如:
文件.abc.com 文件.123.com
abc.com 和 123.com 将是不同的 html 网站,但是当您访问文件子域时,它们将是相同的。如果您明白我的意思,我希望文件子域显示相同的目录?任何其他关于如何实现这一点的建议将不胜感激。提前致谢。
这取决于您如何设置 2 个域和您的主机。在不了解任何详细信息的情况下执行此操作的一种直接方法是使用内部代理将其中一个指向另一个,方法是将其放入另一个域的 .htaccess 文件(托管 files.abc.com 的位置):
RewriteEngine On
RewriteCond %{HTTP_HOST} ^files\.abc\.com$ [NC]
RewriteRule ^(.*)$ http://files.123.com/$1 [P,L]
在这里,我们在主机中有文件 for 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]