从根目录中包含 Wordpress 的子文件夹中的 Codeigniter URL 中删除 index.php

dcd*_*181 5 php wordpress .htaccess codeigniter

我的服务器子文件夹中的 Codeigniter 应用程序以及文档根目录中的 Wordpress 安装出现了一些问题。如果我隐藏index.phpCodeigniter URL 的.htaccess

/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> 
Run Code Online (Sandbox Code Playgroud)

/codeigniter并让WordPress 忽略RewriteCond %{REQUEST_URI} !^/(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>
Run Code Online (Sandbox Code Playgroud)

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

/codeigniter/.htaccess

RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)

但是我现在遇到了 Wordpress 404 错误,因此如果我替换index.phpindex.php?in ,/codeigniter/.htaccess则 中的 WordPress 重写规则似乎会被忽略。有更好的方法来处理这个问题吗?/.htaccessRewriteCond %{REQUEST_URI} !^/(codeigniter).*$

提前致谢!

Jon*_*Lin 6

RewriteBasecodeigniter 目录中的应该说/codeigniter/

RewriteBase /codeigniter
Run Code Online (Sandbox Code Playgroud)

否则,重写index.php最终会到达 WordPress 的路由器。