【问题标题】:How to make a web app appear at the root of the site?如何使 Web 应用程序出现在站点的根目录中?
【发布时间】:2010-09-09 15:52:36
【问题描述】:

我有一个公告板(基于 punBB),几年来我的根目录都用完了。我愚蠢地决定做一些园艺工作,并在此过程中将 punbb 代码移动到它自己的子目录中。代码效果很好;只要您将浏览器指向新的子目录。问题是用户希望在根目录下看到它...

我在根目录中尝试了一个索引文件,它具有以下内容:

<?php chdir('punbb');
include('index.php');

但这似乎并没有奏效。所以,我尝试在 .htaccess 中使用 mod_rewrite 的“该死的酷巫术”,但我似乎无法找出正确的规则组合以使其发挥作用。

这是我想要实现的:

用户输入:

 http://guardthe.net

浏览器显示:

 http://guardthe.net/punbb/ 

 http://punbb.guardthe.net/

这可能吗,还是我应该将代码库移回根目录?

【问题讨论】:

    标签: .htaccess mod-rewrite punbb


    【解决方案1】:

    一个带有 301 HTTP 永久重定向的 PHP 文件。

    将以下内容放入guardthe.net根目录下的index.php中

    <?php
    Header( "HTTP/1.1 301 Moved Permanently" );
    Header( "Location: http://guardthe.net/punbb/" );
    ?>
    

    浏览器将重定向搜索引擎友好性。

    【讨论】:

    • 除非您的服务器上没有 mod_rewrite 支持,否则您应该避免这种方法,因为用户必须下载此网页并让浏览器显示它,然后才能执行第二个事务返回服务器。延迟通常足够长以使用户注意到。如果可能,请使用 mod_rewrite。
    【解决方案2】:

    您的示例代码丢失了,但这是使用 mod_rewrite 的一种方法:

    RewriteEngine on
    RewriteRule ^$ http://guardthe.net/punbb/ [L,R=301]
    

    【讨论】:

    • 请注意:这需要在 webroot 的 .htaccess 文件中,(不在 punbb 目录中)。
    【解决方案3】:

    您可以编写一个小的重定向脚本来简单快速地处理这个问题。

    <?php 
    header( 'Location: http://guardthe.net/punbb/' ); 
    ?>
    

    将其作为根目录下 index.php 中的唯一内容输入,然后发送到该文件夹​​的任何请求都会将用户重定向到论坛。

    【讨论】:

      【解决方案4】:

      .htacces 中的类似内容应该这样做:

          RewriteEngine On
          RewriteRule ^/?$ /punbb/ [R=301,L]
      

      301 返回码将移动标记为永久,使浏览器可以更新书签。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-27
        • 2017-08-22
        • 1970-01-01
        • 1970-01-01
        • 2012-03-21
        • 2021-08-10
        • 1970-01-01
        • 2019-02-12
        相关资源
        最近更新 更多