htaccess for laravel而不影响子域

时间:2017-03-13 21:01:19

标签: apache .htaccess redirect mod-rewrite

我试图让htaccess为laravel 5.4工作,但不会影响创建的子域。

我目前的htaccess

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]

我尝试过的是在子域文件夹中设置htaccess,其中包含以下内容:

RewriteEngine On

当我在别处阅读时,这应该会停止顶级域名htaccess,但是当我有一个像dev.example.com这样的子域时,它会重定向到dev.example.com/dev

无论如何最终摆脱/ dev?

文件夹结构:

app
bootstrap
config
database
public
storage
resources
routes
dev --> subdomain

1 个答案:

答案 0 :(得分:0)

在前面,我没看到这个/dev如何与指令相关,你已经证明了。他们都没有做任何事情在任何地方添加/dev。也许它只是以某种方式应用的子目录。

声明"这应该会阻止顶级域名htaccess"并非完全正确。来自Apache - How directives are applied

  

.htaccess文件中的配置指令将应用于找到.htaccess文件的目录及其所有子目录。

     

但是,重要的是还要记住,目录中可能存在.htaccess文件。指令按照找到的顺序应用。

     

因此,特定目录中的.htaccess文件可能会覆盖在目录树中较高位置的.htaccess文件中找到的指令。反过来,这些可能已被覆盖的指令更高,或者在主服务器配置文件本身中。

因此.htaccess不会阻止另一个.htaccess,但是指令会覆盖指令。这意味着,您可以从一个.htaccess获得一些指令,从顶级.htaccess获得另一个不相关的指令。

在您的情况下,RewriteEngine on只会覆盖主.htaccess文件中的RewriteEngine on

如果您想阻止顶部.htaccess中的任何RewriteRule,我宁愿尝试

RewriteEngine off