.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。子域应用程序现在无法运行