php - 从根目录中带有 Wordpress 的子文件夹中的 Codeigniter URL 中删除 index.php

标签 php wordpress .htaccess codeigniter

我在服务器子文件夹中的 Codeigniter 应用程序以及文档根目录中安装的 Wordpress 方面遇到了一些问题。如果我用 .htaccess

隐藏 Codeigniter URL 的 index.php

/codeigniter/.htaccess

DirectoryIndex index.php

<IfModule mod_rewrite.c>

  RewriteEngine on
  RewriteBase /
  RewriteCond $1 !^(index\.php|user_guide|robots\.txt)
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d 
  RewriteRule ^(.*)$ index.php/$1 [L,QSA]

</IfModule>

<IfModule !mod_rewrite.c>
  ErrorDocument 404 index.php
</IfModule> 

并使用 RewriteCond %{REQUEST_URI} !^/(codeigniter).*$

让 Wordpress 忽略 /codeigniter

/.htaccess

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

然后导航到 www.mysite.com/codeigniter/my_controller/my_function,我收到 404 错误 No input file specified. 我找到了 here ,在 RewriteRule ^(.*)$ index.php 之后添加 ? 解决了 Codeigniter 404 错误。

/codeigniter/.htaccess

RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

但是我现在遇到了 Wordpress 404 错误,所以我似乎可以将 /codeigniter/中的 index.php 替换为 index.php?。 htaccess/.htaccess 中的 Wordpress 重写规则,RewriteCond %{REQUEST_URI} !^/(codeigniter).*$ 被忽略。有更好的方法来处理这个问题吗?

提前致谢!

最佳答案

codeigniter 目录中的 RewriteBase 应该是 /codeigniter/

RewriteBase /codeigniter

否则,对 index.php 的重写最终会转到 wordpress 的路由器。

关于php - 从根目录中带有 Wordpress 的子文件夹中的 Codeigniter URL 中删除 index.php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13943040/

相关文章:

linux - 为什么 php 'date' 函数返回错误的时间(大约 24 秒)?

php - 仅使用 301 重定向重定向 WordPress 主页

regex - 如何将子域重定向到其他域

php - 日期验证的正则表达式帮助 - dd/mm/yyyy - PHP

php - 与用户一起发送我自己的 $_POST 数据

php - 在从 php 中的 mysql 表中获取的数据数组中创建一个新列

php - 如何将记录插入到我的自定义 WordPress 表中?

php - 获取 WooCommerce 成员(member)计划的所有活跃用户

wordpress - CSS 填充与 :after selector - how to make it work on main element independently 一起使用

regex - 带重定向的 URL 掩码/伪装