【问题标题】:htaccess issue with website having WordPress directory containing Cakephp website具有包含 Cakephp 网站的 WordPress 目录的网站的 htaccess 问题
【发布时间】:2012-12-03 02:34:42
【问题描述】:

我正在使用 WordPress 和 WordPress 目录制作前端网站的网站

包含一个具有 cakephp 网站的仪表板文件夹。一切都在我的

上完美运行

本地系统,但是当我将整个网站迁移到在线服务器时,我无法访问

我在此处阅读的 www.mywebsite.com/dashboard 文件夹

https://wordpress.stackexchange.com/questions/20152/cannot-access-non-wordpress-subdirectories-as-wordpress-overrides-them-with-a-40

这是一个 htaccess 问题,但我根本不知道 htaccess 编码,所以这个链接令人困惑

如果有人可以向我解释(以简单的方式)为什么会出现这个问题?以及如何

解决这个问题?对我有帮助

我的 wordpress htaccess 是

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

以及在 wordpress-install-directory/dashboard/cakephp-install 中的 cakephp htaccess

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

【问题讨论】:

  • 访问仪表板时遇到什么错误?
  • WordPress 出现 404 page not found 错误,如果我在 WordPress 安装中删除 htaccess 文件,它会开始工作,但我必须使用 WordPress 的默认永久链接设置,否则 WordPress 页面和帖子将不起作用。
  • 您提供的链接上的解决方案不起作用?这个呢:wordpress.org/support/topic/404-error-from-the-dashboard-side
  • 我已经尝试了该链接上的解决方案,但我不确定我所做的是否正确,因为我不知道 htaccess 编程
  • 如果您删除 .htaccess 然后使用 yourwebsite.com/wp-login.php 登录,然后从这里转到设置/永久链接并单击更新永久链接结构按钮?

标签: wordpress cakephp mod-rewrite


【解决方案1】:

这应该只是更改您的 .htaccess 以匹配以下内容的情况

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase  wordpress-install-directory/dashboard
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

执行上述操作将告诉 cake 所需的文件位于安装目录/仪表板中。

您还需要对 webroot 和 app .htaccess 进行相同的更改

【讨论】:

  • 这工作得很好,但是在 cakephp 安装中再次有一个 API 目录,并且再次有 api 访问的 htaccess 问题。所以我为仪表板创建了一个子域,为 api 创建了一个子域。谢谢
【解决方案2】:

如果它们位于具有独立 .htaccess 文件的不同文件夹中,您可以尝试为 cakephp 设置基本目录,如下所示:

<IfModule mod_rewrite.c>
    RewriteEngine on
    # Could be dashboard or cakephp-install
    RewriteBase  /dashboard
    RewriteRule    ^$    webroot/    [L]
    RewriteRule    (.*) webroot/$1    [L]
</IfModule>

【讨论】:

  • 我应该在哪里添加这个 htaccess 代码 .. 在 wordpress 根 htaccess 文件或 cakephp 根 htaccess 文件中
  • 当我将它添加到 wordpress htaccess 上方时,会出现内部服务器错误
【解决方案3】:

从这里的stackoverflow答案:http://stackoverflow.com/questions/2322559/htaccess-wordpress-exclude-folder-from-rewriterule/2350305#2350305 添加

RewriteCond %{REQUEST_URI} !^/(dashboard|dasboard/.*)$

在 wordpress 目录中 .htaccess 文件的最后一个 RewriteRule 之前,它应该可以工作。

【讨论】:

  • 实际上,为了安全起见,您可能还想重命名文件夹,因为 /dashboard/ 似乎已经取自 wordpress。
猜你喜欢
  • 1970-01-01
  • 2011-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-20
  • 2014-01-07
  • 1970-01-01
相关资源
最近更新 更多