我需要将子域名指向es.domain.com
以下/public/www/index.php
问题:我的主机不提供路径设置,我只能设置“本地使用”的子域名,这会在目录中创建文件public
夹
我的结构是
/public/
/public/de/
/public/es/
/public/it/
/public/www/index.php
我的主机告诉我在子域文件夹内使用 .htaccess 文件。
我尝试过,/public/es/
例如
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(de|es|it)\.mydomain\.com$
# Create an environment variable to remember the language:
RewriteRule (.*) - [QSA,E=LANGUAGE:%1]
# Now check if the LANGUAGE is empty (= doesn't exist)
RewriteCond %{ENV:LANGUAGE} !^$
# If so, create the default language (=es):
RewriteRule (.*) - [QSA,E=LANGUAGE:es]
# Change the root folder of the spanish language:
RewriteCond %{ENV:LANGUAGE} ^es$
# Change the root folder:
RewriteRule ^/?$ /public/www/index.php
</IfModule>
但是我得到了 404:
未在该服务器上找到请求的 URL /public/www/index.php。
在我的 DNS 列表中,我看到
es.domain.com
CNAME onlinux-it.setupdns.net
,而
www.domain.com
CNAMEdomain.com
我也尝试分配
es.domain.com
CNAMEdomain.com
但没有任何改变。
答案1
最好的方法是更改DocumentRoot
Apache 配置文件中那些 sobdomains 的指令,以便它们全部指向,/public/www/
但我想你不能这样做。
我认为没有任何方法可以用文件来完成你所要求的操作.htaccess
。
您可以创建符号链接而不是文件夹,以便:
/public/de/ -> /public/www/
你能做到吗?
答案2
你写了:
在我的 DNS 列表中,我看到
es.domain.com
CNAMEonlinux-it.setupdns.net
,而www.domain.com
CNAMEdomain.com
也许问题出在您的 DNS 配置上。
我自己的 DNS 配置如下:
$TTL 86400
@ IN SOA dnsxx.ovh.net. tech.ovh.net. (2011111300 86400 3600 3600000 86400)
IN NS dnsxx.ovh.net.
IN NS nsxx.ovh.net.
IN A 123.123.123.123
* IN CNAME papdevis.fr.
这意味着“如果您papdevis.fr
在 ie 后面输入 或 任何内容,www.papdevis.fr
或者olivier.papdevis.fr
转到地址为 的服务器123.123.123.123
。
123.123.123.123
例如,如果我将地址更改为新地址234.234.234.234
,这将起作用,并且只要您输入papdevis.fr
或任何其他内容(如之前所述),它就会转到234.234.234.234
。一切都将顺利进行,无需触碰任何.htaccess
文件。
因此,请尝试在您的网站上应用相同的 DNS 配置。