我试图让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
答案 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