0

我们一直被困在一个问题上,即使使用 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]

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

感谢您花时间帮助我们!

4

1 回答 1

0

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

这是在 Web 浏览器中打开 URL 的工作原理:

  1. Web 浏览器必须首先进行 DNS 查找以转换主机名(在您的示例中,somename.example.nl转换为 IP 地址
  2. Web 浏览器向它找到的 IP 地址发送 HTTP 请求,请求 URL 包含输入的 FQDN ( somename.example.nl)
  3. Web 服务器使用虚拟主机或其他配置类型来确定如何处理给定 FQDN 的请求。

因此,该名称somename.example.nl必须可通过 DNS 解析,否则用户的计算机将不知道将 HTTP 请求发送到何处(到哪个 IP 地址)。

于 2013-02-08T13:32:09.277 回答