.htaccess 影响子域中的目录

Posted

技术标签:

【中文标题】.htaccess 影响子域中的目录【英文标题】:.htaccess affects directory in the sub domains 【发布时间】:2015-04-06 03:57:21 【问题描述】:

认为这是我的域www.example.com

我在我的网站中使用 laravel

这是laravel结构

app/
bootstrap/
public/
vendor/
server.php

要从我关注this answer 的 url 中删除 index.php 和 public

即,

在根路径中有 .htaccess

并将 server.php 文件重命名为 index.php

这是我的 .htaccess

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]

# Handle Front Controller...
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %REQUEST_FILENAME !-f
RewriteRule ^ index.php [L]

效果很好,但问题是我有子域

projects.example.com

虽然我在这里创建一个子目录,即,

projects.example.com/firstproject

总是显示内部服务器错误

我该如何解决这个问题,该目录有异常或类似的东西?

【问题讨论】:

【参考方案1】:

htaccess 文件影响文件所在的目录和所有子目录。如果您有不希望 mod_rewrite 规则影响的子目录,则需要在打开重写引擎的情况下在子目录中添加一个 htaccess 文件(这样所有父规则都没有优先权)。

只需将其添加到子目录中的 htaccess 文件中,无需任何实际规则:

RewriteEngine On

【讨论】:

我已经创建了 .htaccess 并添加了您建议的规则。我的目标文件夹是 projects.example.com/firstproject 我在这里更新了 .htaccess 但它仍然显示错误 检查您的错误日志以确保错误实际上是由 mod_rewrite 引起的 效果很好!!要求澄清...如果我在 .htacess 中的任何位置添加RewriteEngine On,则上一个目录中的规则将无法正常工作?? @Chennai 正确,这听起来违反直觉,但如果您没有打开重写引擎,则没有规则,因此父目录中的任何规则都会自动应用。如果你开启了重写引擎,那么当前目录中的规则就会被应用(这些规则没有)。

以上是关于.htaccess 影响子域中的目录的主要内容,如果未能解决你的问题,请参考以下文章

根目录中的 Wordpress htaccess 覆盖子域中的 htaccess。子域应用程序现在无法运行

.htaccess 将子域重定向到外部 URL

子域“m”。与 WordPress 和。 htaccess(在 htaccess 中的重写规则冲突。)

.htaccess是什么

.htaccess 将子域重写到目录并将子域保留在 url

.htaccess 将子域重写到目录