htaccess:服务器上文件夹的子域.保留URL


htaccess: subdomain to folder on server. Keep URL

我需要使用apache的htaccess来帮助(内部重定向?)。

在我的服务器上,我有一个主域:

url:domain.com
服务器路径:/opt/public_html/domain.com/

子域

url:sub.domain.com
服务器路径:/opt/public_html/sub.main.com/

当访问者键入sub.domain.com时,我希望URL保持不变。我还希望服务器向访问者提供文件/opt/public_html/domain.com/index.php。如何在.htaccess中执行此操作?

此外,如果访问者键入sub.domain.com/sofa/,则服务器应在不更改URL的情况下提供文件/opt/public_html/domain.com/sofa/index.php

明白了吗?OK最后一个例子:

如果访问者键入sub.domain.com/?big=mac,则服务器应在不更改URL的情况下显示文件/opt/public_html/domain.com/?big=mac

有什么办法吗?

如果在.htaccess中启用RewriteEngine,您应该能够创建一个条件和规则来处理子域URL上的主域页面。类似这样的东西:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} sub.domain.com$
RewriteCond %{REQUEST_URI} !^/sub.domain.com
RewriteRule .* domain.com/%1 [L] 

RewriteCond行使该规则适用于sub.domain.com上的任何页面,并且应该从public_html/sub.domain.com开始提供。它应该(希望在内部)将URI更改为http://domain.com/whatever,而不在浏览器中更改它。

查看此问题和此问题以获取类似信息。如果.htaccess真的不适合您,您可以尝试使用代理mod_rewrite或创建符号链接。