htaccess将所有子域重写为index.php

时间:2013-05-19 16:02:00

标签: .htaccess mod-rewrite url-rewriting webserver localhost

我知道这个问题已被问过很多,但我不知道为什么它对我不起作用: - ? 这是我的htaccess:

Options +FollowSymLinks
IndexIgnore */*
# Turn on the RewriteEngine
RewriteEngine On
#  Rules
RewriteRule ^(.*)$ index.php

这段代码应该用任何路径重写任何链接,包括任何子域到index.php,但它不会。

域名也不应该进入htaccess,因为它是未知的! 我将此htaccess称为127.0.0.1,许多网站应该链接到localhost:

的/ etc /主机

127.0.0.1   localhost
127.0.1.1   mypc
127.0.0.1   google.com
127.0.0.1   example.com

此处,我的浏览器确实成功浏览了google.com或example.com,但找不到子域名如sub1.google.com或sub1.example.com。

的index.php

<?php
$uri = 'http'. ($_SERVER['HTTPS'] ? 's' : null) .'://'. $_SERVER['HTTP_HOST'].$_SERVER[REQUEST_URI];
print_r($uri);
?>

有没有人知道这个.htaccess代码对于子域名是如何工作的呢?

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你会问为什么google.com正确加载了localhost上的index.php,但是sub1.google.com等子域名没有。

您无法使用hosts文件覆盖子域DNS。要完成此操作,您需要将所有子域添加到hosts文件,或者设置一个私有DNS服务器,其中google.com*.google.com的记录指向127.0.0.1。