带有subdomain参数的PHP的URL

时间:2013-02-08 13:19:31

标签: php .htaccess redirect url-rewriting subdomain

我们一直遇到一个问题,即使有关StackOverflow上的所有文章,我们似乎无法解决这个问题。我们有一个像" www.example.nl/domain.php?user = somename"我们需要用户通过输入" somename.example.nl"来访问该页面。我们已经尝试了很长时间,而且我们找到的答案都不适用于我们。

我们尝试过类似的代码:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^(www\.)?example.nl$ [NC]
RewriteRule ^([^/]*)/?$ domain.php?user=$1 [NC,QSA,L]

RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_URI} ^/index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} !^(www|mail).example.nl$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+).example.nl$ [NC] 
RewriteRule ^([^/]*)/?([^/]*)/?([^/]*)/?$ domain.php?user=%2 [NC,QSA,L]

此外,在此之前我们尝试了这个:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+).example.nl$ [NC] 
RewriteRule ^([^/]*)/?([^/]*)/?([^/]*)/?$ domain.php?user=$1 [NC,QSA,L]

如果这是一个转贴,我道歉,但我已经坚持了几个小时,我真的需要一个明天到期的项目答案。

感谢您抽出宝贵时间帮助我们!

1 个答案:

答案 0 :(得分:0)

您不仅需要设置代码和Web服务器来处理此问题,还需要设置DNS配置。您需要使用通配符匹配将所有子域重定向到相同的IP地址。

这是在网络浏览器中打开网址的方式:

  1. 网络浏览器必须首先执行DNS查找以将主机名(在您的示例中为somename.example.nl)转换为IP地址
  2. Web浏览器向找到的IP地址发送HTTP请求,其中包含输入的FQDN请求URL(somename.example.nl
  3. Web服务器使用虚拟主机或其他一些配置类型来确定如何处理给定FQDN的请求。
  4. 因此,此名称somename.example.nl必须通过DNS解析,否则用户的计算机将无法知道发送HTTP请求的位置(向哪个IP地址发送)。