.htaccess htaccess子域重定向更改地址

.htaccess htaccess子域重定向更改地址,.htaccess,mod-rewrite,subdomain,.htaccess,Mod Rewrite,Subdomain,我已经在SO上读了两天的帖子,尝试了十几个样本,但都没能让我的重写工作正常进行 我的情况如下: 我在Ubuntu上运行Apache。 我的根file1.php、file2.php和一个文件夹网站中有2个文件 我想将www.mydomain.com和domain.com重定向到该文件夹。该部分正在使用这组规则: RewriteCond %{HTTP_HOST} ^(www.)?mydomain\.com$ RewriteCond %{REQUEST_URI} !^/website/ Rewrite

我已经在SO上读了两天的帖子,尝试了十几个样本,但都没能让我的重写工作正常进行

我的情况如下: 我在Ubuntu上运行Apache。 我的根file1.php、file2.php和一个文件夹网站中有2个文件 我想将www.mydomain.com和domain.com重定向到该文件夹。该部分正在使用这组规则:

RewriteCond %{HTTP_HOST} ^(www.)?mydomain\.com$
RewriteCond %{REQUEST_URI} !^/website/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /website/$1
RewriteCond %{HTTP_HOST} ^(www.)?mydomain\.com$
RewriteRule ^(/)?$ website/ [L]
现在我尝试使用子域。 demo.mydomain.com应该访问www.mydomain.com/file1.php?v=demo demo.mydomain.com/file2.php应访问www.mydomain.com/file2.php?v=demo 浏览器地址栏中的url不应更改

我已经有了这个:

RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$   http://www.mydomain.com%{REQUEST_URI}?v=%1 [L]
##
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ file1.php?v=%1 [L]
这会导致demo.mydomain.com/file2.php转到www.mydomain.com/file2.php?v=demo,这没问题,但地址栏中的URL也会更改。那不好。 demo.mydomain.com重定向到www.mydomain.com,它会转到网站文件夹,这是完全错误的

如你所见,我就快到了。我只是少了一些小东西。
请帮助我。

您在重写规则中使用的域与当前域demo.mydomain.com与www.mydomain.com不同。Apache不知道这些文件指向同一个服务器和文档根,因此Apache执行重定向。只需删除域名部分

RewriteCond %{HTTP_HOST} !^www\.mydomain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(.*)\.mydomain\.com$ [NC]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$   $1?v=%1 [L,QSA]
##
...