我用这个.htaccess创建了一个子域名;它在我的www.example.com域上正常工作,但在www.example.pk上没有。我不明白问题出在哪里。
www.example.com
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} ^([-a-zA-Z0-9]+)\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/?index\.php$
RewriteRule ^(.*)/*([0-9]+)*$ index.php?r=list&source=product&product_get=%1&page_page=$1 [NC,QSA,L]
www.example.pk
RewriteCond %{HTTP_HOST} !^www\.example\.pk$ [NC]
RewriteCond %{HTTP_HOST} ^([-a-zA-Z0-9]+)\.example\.pk$ [NC]
RewriteCond %{REQUEST_URI} !^/?index\.php$
RewriteRule ^(.*)/*([0-9]+)*$ index.php?r=list&source=product&product_get=%1&page_page=$1 [NC,QSA,L]
我创建了www.example.com域,然后创建了带有cpanel * .example.com的子域。有必要吗?
答案 0 :(得分:0)
使用子域时,需要正确配置DNS以将子域指向服务器。 cpanel的子域特性可能已为您完成此操作,或者它已包含通配符cname dns记录。 DNS记录通常是缓存的,但我不确定是否也存在不存在的记录。
子域名是否已解析为我的服务器?
首先检查您的子域是否已解析为ip。打开终端并输入ping yoursubdomain.example.com
(显然您需要将其替换为您的实际域名)。如果无法解析为ip,则DNS记录可能存在问题。如果您需要here或其他几个类似的网站,您可以在线完成。
编辑你的DNS
如果您的主机为您提供了手动编辑DNS记录的机会,则需要了解以下内容:
您可以添加一个wildcard-subdomain(将任何(un)可想象的子域名翻译到您的网站)或添加到您的dns的特定子域名。您可以通过添加
来实现CNAME (from) *.example.com (to) example.com
TTL(生存时间)是其他人可以缓存记录的时间。它最多会采用TTL让世界上的每个人“注意”你在dns记录中所做的改变。 This site提供了更多相关信息。
<强>的.htaccess 强>
我不确定你想要改写什么样的网址,但有几件事你可以改变:
%{REQUEST_URI}
始终以/
开头。在您的情况下,无需在其后面添加?
。%1
- 反向引用类型,请将相应条件直接放在它上面,即使事实证明它们没有被没有捕获组的其他条件覆盖。^(.*)/*([0-9]+)*$
对我没有多大意义。它匹配每个网址,因为(.*)
之后的所有内容都是可选的,并且可以存在无限次。我怀疑这是你想要的。RewriteCond %{HTTP_HOST} !^www\.example\.pk$ [NC]
RewriteCond %{REQUEST_URI} !^/index\.php$
RewriteCond %{HTTP_HOST} ^([-a-zA-Z0-9]+)\.example\.pk$ [NC]
RewriteRule ^(.*)/*([0-9]+)*$ index.php?r=list&source=product&product_get=%1&page_page=$1 [NC,QSA,L]