【问题标题】:User-Friendly Redirect If File Not Exist如果文件不存在,用户友好的重定向
【发布时间】:2018-04-18 22:44:34
【问题描述】:

我觉得这是一个相当普遍的请求,但我对 .htaccess 太困惑了,无法通过 Google 找到解决方案。

我在 Apache2 htdocs 的子目录中有一个 Laravel 实例。现在我想无形地将所有请求从根域重定向到这个文件夹(它应该是“根”网站)。但棘手的是,这不是唯一的文件夹,htdocs中直接还有其他文件夹,应该可以正常访问。只是“根”网站不在根目录中,而是在子文件夹中。例如:

我想,这个解决方案的一部分是在 .htaccess 中列出所有 websiteB、websiteC 目录,是否可以自动执行此操作?

提前致谢!

【问题讨论】:

  • 我不使用Laravel,但是在你的路由中,如何在/(即索引)路由函数中包括最后的index.php和die()。

标签: php apache .htaccess laravel-5


【解决方案1】:

您可以在要自定义控件的文件夹中放置一个 .htaccess,但您必须创建一些过滤条件

<IfModule mod_rewrite.c>
    RewriteEngine On
    ## RewriteBase /foo

    ## conditions to tell what to redirect ie on URI
    ## RewriteCond %{REQUEST_URI} ^/a-folder/
    ## not websiteB or websiteC
    RewriteCond %{REQUEST_URI} !^/websiteB/
    RewriteCond %{REQUEST_URI} !^/websiteC/
    ## if the file does not exist call index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ my/path/to/a/script.php [L]

</IfModule>

在你必须为这些 HTTP 调用在 script.php 中做一些特殊的事情之后

您也可以重写 URI 并将其再次传递给 apache,但之后事情可能会变得复杂......

【讨论】:

    猜你喜欢
    • 2019-08-01
    • 1970-01-01
    • 2015-09-14
    • 2012-02-24
    • 2010-10-14
    • 2021-09-15
    • 2012-11-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多