我们的第三方提供商在 codeigniter 站点内创建了一个 codeigniter 站点。
意思如下:
1:我们有标准的应用程序文件夹和 CI 案例文件夹。
2:在里面我们有 admin 文件夹,它是 CI 基础文件夹的副本。把它想象成有人通过将 CI 重命名为“admin”在 code igniter 中复制 codeigniter。
我们的 nginx.conf 如下:
worker_processes auto;
worker_rlimit_nofile 1035;
pid /usr/local/var/run/nginx.pid;
events {
worker_connections 1024;
multi_accept on;
use kqueue;
}
http {
include mime.types;
server{
listen 80;
server_name localhost ;
access_log /usr/local/etc/nginx/logs/default.access.log ;
error_log /usr/local/etc/nginx/logs/default.error.log ;
#root /Users/rishi/appiness/rishijfh;
root /Users/rishi/appiness/JobsForHer-PHP;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?args;
}
location ~ \.php$ {
include fastcgi_params;
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
}
}
CI/application 文件夹的 .htaccess 文件包含以下内容:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
CI/admin/application 文件夹下的 .htaccess 文件内容如下:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
CI/应用程序工作正常但 CI/admin/应用程序抛出 404 错误。
我搜索了很多并在下面尝试过 https://www.quora.com/How-do-I-solve-CodeIgniters-404-not-found-error http://www.arifulhaque.com/codeigniter-htaccess-and-index-php-issues-solution/
没有一种解决方案适合我们。请帮忙。
最佳答案
这可能是因为“外部”CI 试图将管理员查找为 Controller ,而不是浏览器深入到文件夹中。
在实际重写之前,在“外部”CI(不是在应用程序文件夹中,而是在根目录中)尝试这些重写条件:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
它应该看起来像这样(在这里复制我的):
<IfModule mod_rewrite.c>
RewriteEngine On
# Removes trailing slashes (prevents SEO duplicate content issues)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_METHOD} !POST
RewriteRule ^(.+)/$ $1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
关于php - 带有 nginx 的 Codeigniter 为嵌套应用程序提供 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36305471/