首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HTACCESS:如何URL重写子域?

问HTACCESS:如何URL重写子域?
EN

Stack Overflow用户
提问于 2015-07-02 13:33:07
回答 2查看 3.4K关注 0票数 8

我有子域apps.domain.com指向domain.com/apps

我想要重写appName.apps.domain.com,其中appName是指向domain.com/apps/appName的变量

  • 我正在寻找内部转发(浏览器的URL没有变化)

在我的.htaccess文件中应该有哪些内容,我应该在哪里保存它?在/apps/文件夹中?还是在root文件夹中?

最后,如果无法使用.htaccess文件,我如何才能做到这一点?我使用Linux服务器作为主机。

*问题更新于2018年07/08/2018年;添加了更多细节*

  • 我正在使用GoDaddy共享托管
  • 它目前托管多个域。
  • 因此,目录结构是public_html/domain.com/,其中/domain.com/是托管域名的名称。
  • 子域是独占的1特定域。

示例:

  • 如果域名为domain.com
  • 有多个名字,但举个例子。如果应用程序的名称是awesome
  • 如果uri是:awesome.apps.domain.com将指向.public_html/domain.com/apps/awesome/
  • 如果uri是:ubertz.apps.domain.com将指向.public_html/domain.com/apps/ubertz/
  • 等等..。
EN

回答 2

Stack Overflow用户

发布于 2015-07-08 09:53:01

我使用这个代码进行子域转发:

代码语言:javascript
复制
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.apps\.domain\.com$
RewriteRule (.*) /apps/%1/$1

解释:

  • 在RewriteCond中,使用正则表达式(.*)捕获应用程序名-它将保存到变量%1中。
  • 在RewriteRule中,您将所有内容(这是另一个将保存在变量$1中的内容的(.*)表达式)转发到/apps/<appName>/<path after URL>目录

有关正则表达式的更多信息,我建议查看本教程:http://www.webforgers.net/mod-rewrite/mod-rewrite-syntax.php

您应该将.htaccess保存在域的root目录中,在public_html/domain.com/中保存。如果它不能工作,将其放在apps文件夹中。

票数 4
EN

Stack Overflow用户

发布于 2015-07-08 12:19:19

尝试以下.htaccess指令:

代码语言:javascript
复制
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)\.apps\.domain\.com$
RewriteRule (.*) /apps/appName/$1 [P,L]

由于P标志,RewriteRule不会重定向用户。这将将请求重定向到mod_proxy模块,该模块处理请求并返回结果。

有关详细信息,请参阅proxy.html。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31186078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档