【问题标题】:URLs Get redirected to root for webroot filesURL 被重定向到根目录以获取 webroot 文件
【发布时间】:2017-02-04 19:55:09
【问题描述】:

我有一个 CakePHP 应用程序,它在 webroot 中有一些 html 静态文件。 HTML 文件位于某些目录中,例如 webroot/dir1/dir2/page.html。 当我输入 url:site.com/dir1 我被重定向到 site.com/webroot/dir1/ 但是当我输入 site.com/dir1/ 我被重定向到第一页 site.com 如果我输入 html 文件的 url:site.com/dir1/dir2/page.html,我会被重定向到第一页 site.com。它应该显示html文件。如何让它显示 html 文件而不重定向到第一页?

在我的 public_html 中,htaccess 是:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

在 webroot 中,htaccess 是:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

【问题讨论】:

标签: .htaccess redirect cakephp


【解决方案1】:

它绝对没有连接到 CakePHP。忽略你的目录 / 那些不应该被 CakePHP 的路由系统处理的,请看这个相关的SO post

.htaccess 插入您应该忽略的目录中:

RewriteEngine Off

【讨论】:

  • 在所有这些和子目录中?
  • 你不必,.htaccess 分层工作,在父存储库中就足够了。
  • 添加了 htaccess。还是行不通。地址仍然由 cakephp 处理
  • 看起来一团糟。你的public_html 目录是什么,它来自哪里?这是一个放置静态内容目录的目录吗?如果是这样,请将 .htaccess 文件放入此目录。如果不是,您应该提供有关您的目录结构的更多信息。
  • 它在一个带有主目录和主目录的public_html子目录的cpanel中。 webroot 目录位于 webroot 目录 home >public_html >webroot>static_dir1>static_dir2>static_dir3>page.html 中的 public_html 和 static 文件夹中
【解决方案2】:

您的问题与 php 无关, 这是关于 apache Webserver 或更多关于 -> Apache Module mod_rewrite

重写引擎只被调用一次,所以你必须把所有的变化放在一个文件中。

亲切的问候 设置

【讨论】:

    猜你喜欢
    • 2011-08-29
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 2012-06-03
    • 2011-10-24
    相关资源
    最近更新 更多