用户友好的重定向如果文件不存在

时间:2017-11-06 17:30:22

标签: php apache .htaccess laravel-5

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

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

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

提前致谢!

1 个答案:

答案 0 :(得分:0)

您可以将.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>

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

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