我的子域名apps.domain.com
指向domain.com/apps
我想重写网址appName.apps.domain.com
,其中appName
是指向domain.com/apps/appName
的变量
我的.htaccess
文件中应该包含哪些内容以及应该在哪里保存?在/apps/
文件夹中?或者在root
文件夹中?
最后,如果无法使用.htaccess
文件,我该怎么办呢?我使用Linux godaddy服务器作为主机。
**** 问题已更新07/08/2018;添加了更多详细信息 ****
public_html/domain.com/
,其中/domain.com/
是托管域名的名称示例:
domain.com
awesome
awesome.apps.domain.com
将指向... public_html/domain.com/apps/awesome/
ubertz.apps.domain.com
将指向... public_html/domain.com/apps/ubertz/
答案 0 :(得分:4)
您需要做的第一件事是创建一个通配符 *。apps.domain.com 子子域。
(如果您使用的是名称服务器,请跳过此步骤!)登录您的域名注册商,为创建 A记录 * .apps.domain.com (是的,这是星号)并将其指向服务器IP地址。请注意,DNS最多可能需要48小时才能传播。
登录您的网络托管帐户,然后转到域部分下的'子域名'菜单。创建一个子域 *。apps.domain.com ,指向“/ public_html / domain.com / apps”文件夹,因为它的文档根目录。等到传播结束。
访问How to create wildcard subdomain in cPanel和How to Create a Sub-Subdomain了解详情。如果您的服务器配置不允许您创建通配符子子域,则只需创建 * .domain.com 并将其指向“/ public_html / domain.com / apps”
将这些指令放在通配符 *。apps.domain.com 的文档根目录的 .htaccess 文件中,在本例中为“/ public_html /domain.com/apps“
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.+)\.apps\.domain\.com
RewriteRule (.*) http://domain.com/apps/%1/$1 [QSA,P,L]
%1
是(.+)
的编号反向引用,$1
是(.*)
。如果您从特定域 http:// domain.com/apps/%1/$1 进行URL重写,则需要包含[P]
标记服务器,没有它将被重定向。如果您要使用重写的通配符子域的查询字符串,请使用[QSA]
标志。有关这些内容的详情,请访问P|proxy和QSA|qsappend。如果我忘了某些东西,只是调整一些调整,除此之外,是服务器的错误。
您必须为将要存在的重复子域配置 .htaccess 文件,例如 otherwildcard.apps.domain.com ,另一个。 wilcard.apps.domain.com 和 other.deep.level.apps.domain.com 将复制 apps.domain.com ,因为它们是都具有相同的文档根。配置为重定向或告知客户端这些子域不存在。
答案 1 :(得分:3)
我使用此代码进行子域名转发:
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
文件夹中。
答案 2 :(得分:2)
试试这些 .htaccess 指令:
markers.on('clustermouseover', function (e) {
console.log(e.latlng);
}
由于[P]标志,RewriteRule不会重定向用户。这会将请求重定向到处理请求的RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)\.apps\.domain\.com$
RewriteRule (.*) /apps/appName/$1 [P,L]
模块并返回结果。
有关详细信息,请参阅http://httpd.apache.org/docs/2.4/mod/mod_proxy.html。