如果没有使用htaccess在URL中指定文件/目录,则重定向域

时间:2013-10-29 09:55:27

标签: php apache .htaccess redirect virtualhost

我有一个子域 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 Test页面而不是显示错误页面。< /强>

因此,简而言之,如果在网址中未指定文件/目录,我该如何重定向域

或者,如果没有指定文件/目录,如何防止显示默认的Apache Server Test页面?

最后的度假胜地

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

更多信息

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

1 个答案:

答案 0 :(得分:1)

我们一行一行:

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

    RewriteEngine On RewriteCond%{REQUEST_FILENAME}! - f
    RewriteCond%{REQUEST_FILENAME}!-d
    RewriteRule ^(。*)$ http://www.example.com [L]

  5. P.S。如果images.example.com/directory/不会重定向,那么images.example.com也不会。

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

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