【问题标题】:Redirect domain if no file/directory specified in URL using htacess如果使用 htaccess 在 URL 中未指定文件/目录,则重定向域
【发布时间】:2013-11-08 09:49:49
【问题描述】:

我有一个子域 images.example.com,顾名思义,它将图像传送到 example.com 上的所有其他子域。

目前,我已将虚拟主机设置为应用来自父域的所有自定义错误文档,如下所示:

ErrorDocument 400 http://www.example.com/errors/400/
ErrorDocument 401 http://www.example.com/errors/401/
ErrorDocument 403 http://www.example.com/errors/403/
ErrorDocument 404 http://www.example.com/errors/404/
ErrorDocument 500 http://www.example.com/errors/500/
ErrorDocument 405 http://www.example.com/errors/405/
// And so on...

但是,如果访问者没有指定任何文件或目录,我想做的是重定向访问者。换句话说,如果他们访问 images.example.com,他们将被重定向到 www.example.com。

例子:

images.example.com 将重定向到 www.example.com

但是

images.example.com/directory/ 不会重定向

我只想重定向第一页的原因很简单,如果不指定文档/目录,它会显示默认的 Apache Server 测试页面,而不是显示错误页面。

那么,简而言之,如果 URL 中没有指定文件/目录,我如何重定向域?

或者,当没有指定文件/目录时,如何防止显示默认的 Apache 服务器测试页面?

最后的手段

如果我无法使用我的 .htaccess 来实现这一点,那么我只需将一个 php 页面添加到根目录或图像子域,然后从那里重定向...

更多信息

我在其他地方读到,通过指定 403 错误文档,将不会显示 Apache 服务器测试页面。好吧,这并没有奏效,因为我已经指定了错误,我仍然看到测试页面......

【问题讨论】:

  • 我看不出您实际上尝试过在指定条件下重定向方面的任何事情。顺便说一句,不建议对 ErrorDocuments 使用绝对 URL,因为这会导致 重定向。而对于状态 401,它甚至是明显的错误,正如 apache 文档中明确指出的那样。
  • @CBroe 我完全同意,但是我看不到另一种将访问者带到正确错误页面的方法,因为错误文档位于子域的根目录之外。有什么建议吗?
  • 您可以将错误文档复制到子域根目录中可以访问它们的位置,或者使用符号链接...
  • @CBroe 是的,我会将错误文档添加到我的子域并仅包含父域中的内容

标签: php apache .htaccess redirect virtualhost


【解决方案1】:

我们有一行一行:

  1. 打开重写引擎
  2. 是请求一个不存在的文件
  3. 是请求一个不存在的目录
  4. 如果是,则重定向到 www.example.com,这是最后一条规则。

    重写引擎开启
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    重写规则 ^(.*)$ http://www.example.com [L]

附言如果 images.example.com/directory/ 存在时不会重定向,那么 images.example.com 也不会。

我建议创建一个 index.php 并执行:

header("Location:http://www.example.com");
exit();

【讨论】:

  • 感谢您的回答。我不担心目录/文件是否真的存在,因为我的错误文档会处理这个问题。这对您的代码有影响吗?
  • 并非如此。由于这是提供图像,我建议您重定向到/nofound.png。至少这样你总是会得到一个图像。 <a href=""><img src="http://images.example.com/avatar.gif" /></a> 看起来还不错
猜你喜欢
  • 1970-01-01
  • 2014-03-08
  • 2016-02-28
  • 1970-01-01
  • 2011-01-08
  • 1970-01-01
  • 2011-09-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多