2012-10-11 152 views
1

早上好,我有一个问题,我找不到解决方案。 我需要将多个域指向同一个文件夹,但是当我创建一个子域指向具有相同子域名称的文件夹时,我的主机托管。子域名和url重写

,我希望能有结果是:

demo.domainname.tld/index.php将指向www.domainname.tld/shop/index.php?username=demo demo.domainname.tld/product.php?id=100将指向www.domainname.tld/shop/product.php?id=100&username=demo

test.domainname.tld/index.php将指向www.domainname.tld/shop/index.php?username=test test.domainname.tld/product.php?id=100将指向www.domainname.tld/shop/product.php?id=100&username=test

保持在url的子域名地址。

我正在创建一个电子商务平台,我想通过保留子域的用户名来使用独特的电子商务并加载不同的内容。

它有可能吗?怎么样?

回答

0

一个只要所有*.domainname.tld DNS条目指向同一个IP作为www.domainname.tld,他们都有着相同的文档根目录,你可以添加这些规则,在文档根htaccess的:如果你

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTP_HOST} ^([^.]+)\.domainname\.tld$ [NC] 
RewriteRule ^/?index\.php$ /shop/index.php?username=%1 [L,QSA] 

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTP_HOST} ^([^.]+)\.domainname\.tld$ [NC] 
RewriteRule ^/?product.php$ /shop/product.php?username=%1 [L,QSA] 

希望实际执行重定向,从而更改浏览器地址栏中的网址,在方括号中包含R标志,以便它们看起来像:[L,QSA,R][L,QSA,R=301]以实现永久性重定向。

+0

当我创建一个子域名的文件夹创建出www根,然后我不能使用您的重写规则? – user1739269

+0

@ user1739269然后,您需要将这些规则放置在子域的根目录中。 –

+0

我已经尝试过并且这样说:未找到 在此服务器上找不到请求的网址/shop/index.php。 – user1739269