【问题标题】:.htaccess to remove index.php and subfolder from URL.htaccess 从 URL 中删除 index.php 和子文件夹
【发布时间】:2013-06-25 00:21:07
【问题描述】:

我是 .htaccess 新手,在从我的网站 URL 中删除文件夹名称时遇到问题。

目前是:www.mydomain.com/engine

我的 hosts html 文件夹的子文件夹(名为 engine)中有一个表达式引擎站点。在这个文件夹中,我有一个 htaccess 文档,我按照表达式引擎用户指南中的说明删除了 index.php?成功地从 URL 中获取:

重写引擎开启

    # Removes index.php from ExpressionEngine URLs
    RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]

我现在也想从 URL 中删除引用子文件夹的“引擎”。

我在之前的问题中根据建议进行了多次尝试,但都没有成功。

在查看 www.mydomain.com 时,我收到的任何尝试:

禁止。您无权访问此服务器上的 /。

我认为这可能是权限问题,但这个包含 html 的文件夹与允许访问的“engine”文件夹具有相同的权限。

任何人都可以提供我需要的 .htaccess 代码吗?

【问题讨论】:

  • 在您的重写器中的 index.php 之前添加 /engine/ 并将代码移动到您的根目录(上一级)。
  • 感谢 Amine,我已经更新了 html 文件夹中的 htaccess,并创建了一个上一级的 htaccess 文件以包含 /engine/,这适用于除主页之外的所有页面。例如 mydomain.com/page1 有效,但 mydomain.com 仍然给我:禁止。您无权访问此服务器上的 /。警告。这是我的 htaccess 或我的权限的问题吗?提前致谢

标签: .htaccess expressionengine


【解决方案1】:

是的,上面的规则不适用于主页url,因为它是一个目录(不通过第三个RewriteCond),使用下面的代码:

    RewriteEngine On
    # Removes index.php from ExpressionEngine URLs
    RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d [OR]
    RewriteCond $1 ^$
    RewriteRule ^(.*)$ /engine/index.php?/ [L]

【讨论】:

  • 非常感谢 Amine,我真的很感激。
  • 嗨,Amine,我仍然遇到问题,想知道您是否可以帮助我。该站点位于 jesuisunemonstre.com 上,我已经设法通过使用您建议的 htaccess 并从使用表达式引擎路径链接切换到普通 URL 来删除大多数“引擎”情况,但是由于方式的原因,有几个区域是不可能的链接由表达式引擎生成。使用上面的 htaccess 是否应该能够从 URL 中删除每个“引擎”实例?我已经摆弄了几个小时,但没有快乐。
  • 任何帮助将不胜感激!
猜你喜欢
  • 1970-01-01
  • 2011-05-20
  • 2017-03-15
  • 1970-01-01
  • 2020-02-08
  • 1970-01-01
  • 2013-09-02
  • 1970-01-01
相关资源
最近更新 更多