【问题标题】:how to redirect php file in apache如何在apache中重定向php文件
【发布时间】:2011-11-08 09:50:32
【问题描述】:

我有以下链接。 elad.test.com/test.php 我希望能够输入 elad.test.com 并访问该 URL。 我知道我必须用 .htaccess 来做,但它对我不起作用。

有人可以帮忙吗?

【问题讨论】:

  • 您可以在此处发布您的 .htaccess 内容。
  • Htaccess redirect 的可能重复项

标签: php linux apache .htaccess


【解决方案1】:

如果您不想使用 .htaccess 文件,您可以随时使用 index.php 文件,该文件使用重定向到 test.php

header("location: test.php");

或者,如果您希望浏览器在请求目录时重定向到 test.php 而不是 index.php(即 elad.test.com/ - 这是服务器的索引目录),您可以通过 from更改 apache 配置。请注意,这将影响服务器中的每个目录。

【讨论】:

  • 小心:标题应大写,位置应始终为绝对 URI。例如:Location: http://www.example.com/test.php.
  • 老实说,在我工作的每个网站上,我很少使用绝对 URI,而且它一直在工作。无论如何,手册是这样说的,所以这是真的:)
  • 大多数浏览器会尊重相对 URI,但它们仍然违反 RFC 2616。最好在生成内容(您的服务器)时格外小心,并在接受它(浏览器)时宽容。
  • 我确实想使用 .htaccess。我正在使用超过 1 个虚拟主机。
【解决方案2】:

您需要添加test.php 作为test 子域的第一个加载顺序:

DirectoryIndex test.php index.php index.html index.htm default.htm

【讨论】:

    【解决方案3】:

    创建一个 index.php(或任何你的默认文件)文件并使用它重定向到你的 test.php 文件。

    示例:

    <?php
    header('Location: http://elad.test.com/test.php');
    exit;
    ?>
    

    http://php.net/manual/en/function.header.php

    【讨论】:

      【解决方案4】:

      如果您只托管 1 个虚拟主机,则可以省略 RewriteCond。在您的 .htaccess 文件中的适当位置添加:

      RewriteCond %{HTTP_HOST} ^elad\.test\.com$ [NC]
      RewriteRule ^$ /test.php [L]
      

      这样,如果您在浏览器的地址栏中输入http://elad.test.com/,您将获得 /test.php 页面(但您的浏览器的地址栏不会改变)。

      【讨论】:

      • 我确实想使用 .htaccess。我正在使用超过 1 个虚拟主机
      • 那么这个重写规则对你不起作用吗?将其添加到您的 .htaccess 文件中。
      猜你喜欢
      • 1970-01-01
      • 2023-03-15
      • 2012-06-19
      • 2015-09-02
      • 2017-04-15
      • 1970-01-01
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      相关资源
      最近更新 更多