1

我尝试使用 htaccess 创建子域。到目前为止工作正常。我在另一个脚本中使用子域作为 Get-Parameter。

但是,如果有人只使用此参数,则 subdomain-parameter 将被覆盖。

user1.domain.com/?site=user2 将显示 user2.domain.com。(实习生是 www.domain.com/index.php?site=user2)

因此,我尝试将站点从?site=user2 重定向到 user2.domain,但每次我使用 [R] 修饰符时,都会更改 url,以便您可以看到我的本地文件夹。
RewriteBase /path/to/basefolder 在那里也没有帮助。

你们中有人知道如何更改地址栏,使其实际上不是 /?site=user1 或 /index.php?site=user1,而是 user1.domain.com 吗?
或者我做错了什么?^^

这是我当前的代码:

RewriteEngine on
Options +FollowSymlinks

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /([^\?]+)\?(.*?)&?site=([^&\ ]+)([^\ ]*)
RewriteRule ^ http://%4.domain.com/%2?%3%5 [L,R]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} !index\.php [NC]
RewriteCond %{REQUEST_URI} !\.css$ [NC]
RewriteCond %{REQUEST_URI} !\.png$ [NC] 
RewriteRule \.php index.php

RewriteCond %{HTTP_HOST} ^(.*).domain.com$
RewriteCond %{REQUEST_URI} !^/.*/
RewriteRule (.*) index.php?site=%1 [NC,QSA,L]

<Files .htaccess>
order allow,deny
deny from all
</Files>
4

1 回答 1

1

尝试将其添加到您当前的规则之上(就在下面Options +FollowSymlinks):

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /([^\?]*)\?(.*?)&?site=([^&\ ]+)([^\ ]*)
RewriteRule ^ http://%4.domain.com/%2?%3%5 [L,R]

因此,当有人在 URL 地址栏中键入类似的内容http://domain.com/some/path/to/file.php?foo=bar&site=user2&other=param时,他们将被重定向到(并且地址栏更改为):http://user2.domain.com/some/path/to/file.php?foo=bar&other=param

于 2012-09-20T18:36:55.153 回答