HTACCESS:如何URL重写子子域?

Oma*_*mar 7 .htaccess url-rewriting

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

我想URL重写appName.apps.domain.com,appName指向的变量在哪里domain.com/apps/appName

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

我的.htaccess文件应该包含哪些内容以及应该在哪里保存?在/apps/文件夹内?还是在root文件夹中?

最后,如果.htaccess文件不可用,我该怎么做?我正在使用Linux godaddy服务器作为主机.


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

  • 我正在使用GoDaddy SHARED托管
  • 它目前托管多个域名
  • 因此,目录结构是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/
  • 等等...

Gen*_*his 4

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

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.*)\.apps\.domain\.com$
RewriteRule (.*) /apps/%1/$1
Run Code Online (Sandbox Code Playgroud)

解释:

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

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

您应该将您的内容保存.htaccessroot域的目录中,在您的情况下保存在public_html/domain.com/. 如果不起作用,请将其放入apps文件夹中。