【发布时间】:2012-04-25 17:06:49
【问题描述】:
我已经阅读 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 到网站文件夹,这是完全错误的。
如您所见,我快到了。我只是缺少一些小碎片。
请帮帮我。
【问题讨论】:
标签: .htaccess mod-rewrite subdomain