我有一个通配符子域(ServerAlias * .mydomain.com)来捕获所有子域请求并将它们重定向到主页,同时在浏览器中保留“假”URL并将子域(城市名称)作为URL参数传递
子域文件夹中的.htaccess:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.*)\.(.*)\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%2.%3/index.php?city=%1 [P,L]
</IfModule>
问题:每个页面都有一个菜单,其中包含一些链接(register.php,login.php,contact.php),如果您在一个子域中选择其中任何一个,请求(city.mydomain.com)例如/login.php)由条件/规则
捕获我想我需要添加第二组条件/规则,但经过一些测试后找不到合适的条件。我在已经工作的那个之前添加了这个:
RewriteCond %{HTTP_HOST} ^(.*)\.(.*)\.(.*)$ [NC]
RewriteCond %{REQUEST_URI} ^/(.*)\.php$ [NC]
RewriteRule ^(.*)$ http://%2.%3/%4 [P,L]
收到错误:
坏网关! 代理服务器从上游服务器收到无效响应。 代理服务器无法处理请求GET /register.php。
原因:DNS查找失败:
如果您认为这是服务器错误,请与网站管理员联系。
错误502 city.domaim.com
CentOS 5 Parallels Small Business Panel 10.2.0
提前致谢
答案 0 :(得分:0)
使用mod_rewrite可能会使这种情况复杂化。我建议简单地解析/验证子域(city)并使用直接PHP设置常量。例如,在config / init文件中。最后,您将对子域进行更大的控制,尤其是在验证的情况下。
KISS :)
答案 1 :(得分:0)