【发布时间】:2014-10-17 06:35:43
【问题描述】:
我正在开发一种大规模虚拟主机应用程序,所以我需要以下东西:
htaccess 文档的顶部:
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} ^$
我在本地运行 XAMPP,所以我编辑了我的 etc/hosts 以测试请求。
1º检测主机名并重写到主机内的文件夹:
所以,按照上面的代码,我添加了这个并且它可以正常工作(正如我测试的那样):
RewriteCond %{HTTP_HOST} www\.?.*\..*
RewriteRule .* %2/$1 [NC,QSA,L]
当我键入 whatever.com(如果它存在于主机上并且 /opt/lampp/htdocs/whatever.com 上有一个文件夹)时,浏览器按规定进入 whatever.com /p>
2º(问题)
说明:我需要像 whatever.com/admin 这样的请求进入名为 /opt/lampp/htdocs/admin 的其他目录并将主机名作为 GET 参数传递,因此 whatever.com/admin 内部变成 localhost/admin/?domain=whatever.com
正如您所料,我得到 404 和 500 却没有找到解决方案。
我认为可以在伪代码中添加更多重写条件。整个文件如下
RewriteCond %{HTTP_HOST} www\.?.*\..*
RewriteRule .* %2/$1 [NC,QSA,L]
RewriteRule admin\/.*\.(!js|!css|php) /admin/?domain=%2 [NC,QSA,L] #redirect all request least the css and js files.
非常感谢。
对不起我的英语。这里的教育系统很烂。
【问题讨论】:
标签: apache .htaccess mod-rewrite xampp localhost