Rah*_*sad 2 apache subdomain mod-rewrite subdirectory
我想将所有子域映射到文件夹.
例如,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
Run Code Online (Sandbox Code Playgroud)
我收到500内部服务器错误.为了检查我附加[R]标志的问题
RewriteRule ^(.+)$ /var/www/clients/%1/$1 [R]
Run Code Online (Sandbox Code Playgroud)
我在地址栏中得到了这个结果
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
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个details.php文件,该文件转储了$ _GET变量的详细信息.它的内容是
<pre>
<?php
var_dump($_GET);
?>
</pre>
Run Code Online (Sandbox Code Playgroud)
并修改了RewriteRule(注意:我将$ 1和%1发送到details.php,显示其内容)
RewriteRule ^(.+)$ details.php?p=%1&d=$1
Run Code Online (Sandbox Code Playgroud)
打开后http://subdomain.oomail.org/file.html,我输出了
array(2) {
["p"]=>
string(9) "subdomain"
["d"]=>
string(11) "details.php"
}
Run Code Online (Sandbox Code Playgroud)
其中变量p是正确的(%1的值),这是"子域",但d($ 1值)为details.php其中我期待是file.html我在URL打开.我哪里错了?或者如何将file.html(URI)提取到变量中以进行映射?
使用此规则:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/clients/
RewriteCond %{HTTP_HOST} ^(.+)\.oomail\.org
RewriteCond %{HTTP_HOST} !^www\.oomail\.org
RewriteRule ^(.*)$ /clients/%1/$1 [L]
Run Code Online (Sandbox Code Playgroud)
在你的第一次尝试中,你有无限的重写循环,Apache必须中断(默认情况下不超过10次迭代).在第二次尝试中,您将面临有限的重写循环(我相信2次迭代).这就是mod_rewrite的工作方式,你应该在你的规则中计算这种可能性 - 特别是当你使用.*匹配模式时.
我的规则中的第一个条件将阻止重写循环发生(意味着规则将仅在第一次迭代时起作用).不幸的是,这意味着一些限制:原始网址无法启动/clients/.例如:此URL不会被重定向:http://something.example.com/clients/hello-kitten.php.
解决方案 - 将clients文件夹重命名为更独特的内容:例如_clients_folder_(您显然必须在重写规则中更改该文件夹).
要读的东西:RewriteRule Last [L]标志不起作用?
| 归档时间: |
|
| 查看次数: |
4409 次 |
| 最近记录: |