我在服务器子文件夹中的 Codeigniter 应用程序以及文档根目录中安装的 Wordpress 方面遇到了一些问题。如果我用 .htaccess
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).*$
/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/