我需要使用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
或创建符号链接。