Redirect 子域和url重写

Redirect 子域和url重写,redirect,rewrite,subdomain,Redirect,Rewrite,Subdomain,早上好,我有一个问题,我没有找到解决办法。 我需要将多个域指向同一文件夹,但在创建子域时,我的主机指向具有相同子域名称的文件夹 我想要的结果是: 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

早上好,我有一个问题,我没有找到解决办法。 我需要将多个域指向同一文件夹,但在创建子域时,我的主机指向具有相同子域名称的文件夹

我想要的结果是:

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中保留子域地址

我正在创建一个电子商务平台,我想使用一个独特的电子商务和加载不同的内容,保持从子域用户名


有可能吗?如何操作?

只要所有
*.domainname.tld
DNS条目指向与
www.domainname.tld
相同的IP,并且它们都共享相同的文档根目录,您就可以将这些规则添加到文档根目录中的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]

如果您希望实际执行重定向,从而更改浏览器地址栏中的URL,请在方括号中包含
R
标志,使其看起来像:
[L,QSA,R]
[L,QSA,R=301]
用于永久重定向。

当我创建子域时,文件夹是从www根目录中创建的,那么我不能使用您的重写规则?@user1739269然后您需要将这些规则放置在子域的根目录中。我尝试过这样说:找不到请求的URL/shop/index.php在这台服务器上找不到。@user1739269那么您呢需要从所有子域中别名
/shop
,或代理,但包括
http://www.domainname.tld
/shop/
目标前面,在方括号中添加一个
P
,我这样做了,但仍然给我错误:RewriteCond%{HTTP_HOST}上的RewriteEngine^www\。[NC]RewriteCond%{HTTP\u HOST}^([^.]+)\.domainname\.tld$[NC]RewriteRule^/?index\.php$[L,QSA,P]