我已经在 SO 上阅读了两天的帖子,并尝试了十几个样本,但无法让我的重写工作。
这是我的情况:
我在 Ubuntu 上运行 Apache。
我的根目录中有 2 个文件(file1.php、file2.php)和一个文件夹(网站)
,我想将 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 进入网站文件夹,这是完全错误的。
如你所见,我快到了。我只是缺少一些小片段。
请帮我。