【发布时间】:2011-10-24 12:09:42
【问题描述】:
我想将我的所有子域映射到文件夹。
例如 subdomain.domain.com 应该显示 domain.com/clients/subdmain 的内容(透明)
RewriteCond %{HTTP_HOST} ^(.+)\.oomail\.org
RewriteCond %{HTTP_HOST} !^www\.oomail\.org [NC]
RewriteRule ^(.+)$ /var/www/clients/%1/$1
我收到 500 内部服务器错误。要检查我附加了 [R] 标志的问题是什么
RewriteRule ^(.+)$ /var/www/clients/%1/$1 [R]
我在地址栏中得到了这个结果
http://q1.oomail.org/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/var/www/clients/q1/always.html
然后我创建了一个转储 $_GET 变量详细信息的 details.php 文件。它的内容是
<pre>
<?php
var_dump($_GET);
?>
</pre>
并将 RewriteRule 修改为(注意:我将 $1 和 %1 发送到显示其内容的 details.php 中)
RewriteRule ^(.+)$ details.php?p=%1&d=$1
打开http://subdomain.oomail.org/file.html后,我得到了输出
array(2) {
["p"]=>
string(9) "subdomain"
["d"]=>
string(11) "details.php"
}
其中变量 p 是正确的(值为 %1),即“子域”,但 d(值为 $1)是我期待的 details.php是我在 URL 中打开的 file.html 。我哪里错了?或如何将 file.html (URI) 提取到变量中进行映射?
【问题讨论】:
标签: apache mod-rewrite subdomain subdirectory