使用 .htaccess 创建绝对路径的子域
Posted
技术标签:
【中文标题】使用 .htaccess 创建绝对路径的子域【英文标题】:Creating SubDomains to Absolute Paths with .htaccess 【发布时间】:2010-10-26 20:43:57 【问题描述】:嘿,我的主人真是太糟糕了。由于某些奇怪的原因,在 cPanel 中创建子域根本不起作用,而且他们的支持热线总是很忙。我想我可以通过使用 .htaccess 来解决这个问题。我敢肯定这并不难,但我对 mod_rewrite 有点陌生,在过去 5 小时内搜索几乎没有成功。情况如下:
/home/user/public_html 自动重定向到http://www.example.com
由于我在 public_html 中使用 CMS,它已经在 .htaccess 中添加了规则,以将 example.com/ 之后的任何不熟悉的内容重定向到“未找到页面”
/home/user/subdomain 需要重定向到http://subdomain.example.com
我应该如何创建到绝对路径的子域重定向?或者如何在我的 .htaccess 中添加异常
【问题讨论】:
如果您的虚拟主机很糟糕,请换一个新的虚拟主机。 【参考方案1】:我怀疑您能否让您的子域在您的 public_html 文件夹之外运行(尽管我不是服务器管理员)。通常这需要修改 DNS 或调整服务器的配置。您是否尝试过创建子目录并重写对子域的调用?例如,这放置在您的 public_html 目录中的 .htaccess 中:
RewriteCond %HTTP_HOST ^subdomain\.example\.com$
RewriteRule (.*) /subdomain/$1 [L]
我不确定这是否可行(从不需要自己测试),但它比尝试将位于 webhost 指定的目录之外的文件定位为域文件的位置更有可能起作用。
祝你好运!
【讨论】:
【参考方案2】:试试这个规则:
RewriteCond %REQUEST_URI !^/home/user/
RewriteCond %HTTP_HOST !^www\.example\.com$
RewriteCond %HTTP_HOST ^([^/.]+)\.example\.com$
RewriteRule ^ /home/user/%1%REQUEST_URI [L]
但是您的网络服务器已经需要配置,以便 foobar
.example.com
的每个请求都被重定向到这个特定的虚拟主机。
【讨论】:
以上是关于使用 .htaccess 创建绝对路径的子域的主要内容,如果未能解决你的问题,请参考以下文章