.htaccess htaccess:更改地址栏以删除禁止参数

.htaccess htaccess:更改地址栏以删除禁止参数,.htaccess,url-rewriting,wildcard-subdomain,.htaccess,Url Rewriting,Wildcard Subdomain,我尝试使用htaccess创建子域。 到目前为止,它运作良好。我正在另一个脚本中将子域用作Get参数 但是,如果有人仅使用此参数,则子域参数将被覆盖 user1.domain.com/?site=user2将显示user2.domain.com。 (实习生:www.domain.com/index.php?site=user2) 因此,我尝试将站点从?site=user2重定向到user2.domain,但每次我使用[R]-修饰符时,url都会更改,以便您可以查看我的本地文件夹。 重写base/

我尝试使用htaccess创建子域。 到目前为止,它运作良好。我正在另一个脚本中将子域用作Get参数

但是,如果有人仅使用此参数,则子域参数将被覆盖

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

因此,我尝试将站点从?site=user2重定向到user2.domain,但每次我使用[R]-修饰符时,url都会更改,以便您可以查看我的本地文件夹。
重写base/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>
重新编写引擎打开
选项+FollowSymlinks
重写cond%{u请求}^(GET ^ HEAD)\/([^\?]+)\?(.*)&?site=([^&\]+)([^\]*)
重写规则^http://%4.domain.com/%2?%3%5[L,R]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_URI}!索引\.php[NC]
重写条件%{REQUEST\u URI}!\。css$[NC]
重写条件%{REQUEST\u URI}!\。巴布亚新几内亚$[NC]
重写规则\.php index.php
重写cond%{HTTP_HOST}^(.*).domain.com$
重写条件%{REQUEST_URI}!^/*/
重写规则(.*)index.php?站点=%1[NC,QSA,L]
命令允许,拒绝
全盘否定

尝试将其添加到当前规则之上(就在
选项+以下语法链接的下方)


因此,当有人在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

尝试将其添加到当前规则之上(就在
选项+以下符号链接的下方
):


因此,当有人在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

您好!谢谢您的快速回复!但是,当我键入www.domain.com/index.php?site=user1时,我会被重定向到user1.domain.com/?site=user1。我是否也可以删除最后一部分?同样,当我键入user1.domain.com/?site=user2时,它仍然显示为user2.domain.com,但没有显示url中发生的任何事情。我需要被重定向到user2.domain,或者?site=user2被忽略…@Julian其他东西正在将
?site=
添加到您的url中,上面的规则专门将其删除。当我将规则放入htaccess文件时,
user1.domain.com/?site=user2
将我重定向到
user2.domain.com/
www.domain.com/index.php?site=user1
将我重定向到
user1.domain.com/index.php
。即使使用您的规则(这些规则都在我的规则下)它工作正常。好吧,我显示了正确的站点,但地址栏仍然保持不变。index.php没有操纵地址栏,上面是我的整个htaccess。在更高的文件夹中有一个htaccess,但只有AddHandler php stable.php和一些auth命令。还有一个require用户……这篇文本仍然奇怪出现…@Julian您可以发布包含上述重定向规则的htaccess文件吗?@Julian我明白了,我将代码粘贴到此处时出错,第一个
/([^\?]+)\?
需要将
+
替换为
*
/([^\?]*)\?
。还编辑了answerHi!感谢您的快速回复!但是,当我键入www.domain.com/index.php?site=user1时,我被重定向到user1.domain.com/?site=user1。我是否也可以删除最后一部分?同样,当我键入user1.domain.com/?site=user2时,它仍然显示为user2.domain.com,而url中没有任何事情发生。我需要edirected to user2.domain或?site=user2被忽略…@Julian其他东西正在将
?site=
添加到您的URL中,上面的规则专门将其删除。当我将规则放入htaccess文件时,
user1.domain.com/?site=user2
将我重定向到
user2.domain.com/
www.domain.com/index.php?site=user1
将我重定向到
user1.domain.com/index.php
。即使使用您的规则(这些规则都在我的规则下)它工作正常。好吧,我显示了正确的站点,但地址栏仍然保持不变。index.php没有操纵地址栏,上面是我的整个htaccess。在更高的文件夹中有一个htaccess,但只有AddHandler php stable.php和一些auth命令。还有一个require用户……这篇文本仍然奇怪出现…@Julian您可以发布包含上述重定向规则的htaccess文件吗?@Julian我明白了,当我将代码粘贴到此处时出错,第一个
/([^\?]+)\?
需要将
+
替换为
*
/([^\?]*)\?
。还需要编辑答案
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /([^\?]*)\?(.*?)&?site=([^&\ ]+)([^\ ]*)
RewriteRule ^ http://%4.domain.com/%2?%3%5 [L,R]