0

首先对不起我的英语不好

这是我的这个问题的背景:我有 2 个项目使用 codeigniter 1 由团队 a 名称项目创建的项目:client_site 另一个由团队 b 名称项目创建的项目:server_site

prod 机器上的结构目录是:
---- www
-------- application(folder)
-------- system(folder)
-------- .htaccess
--- ----- server_site(文件夹)
--------------- 应用程序(文件夹)
--------------- 系统(文件夹)
--- ------------ .htaccess

问题从今天开始,突然当管理员无法登录服务器站点(上午9点)当管理员提交登录面板时,它说找不到页面(404),突然可以在下午12点和今晚17点再次登录pm admin 无法再次登录,但客户端站点没有问题,他们仍然可以访问添加/编辑/添加项目,仅发生在服务器站点

我不明白为什么,或者我的应用程序代码错误,但是当我检查控制器和函数时,它已经存在控制器 home.php 和函数 login()

我的老板说,我的 htaccess 可能设置错误

这是我的 htaccess :

在根站点(client_site)上:

RewriteEngine on <br/>
RewriteCond %{REQUEST_FILENAME} !-f<br/>
RewriteCond %{REQUEST_FILENAME} !-d<br/>
RewriteCond $1 !^(index\.php|images|font|banners|buttons|css|detik|js|robots\.txt|favicon\.ico)<br/>
RewriteCond $1 !^(index\.php|application/views/|robots\.txt|install|favicon\.ico|documents)
RewriteRule ^(.*)$ /index.php?/$1 [L]<br/>
RewriteCond %{HTTP_HOST} !^www\.(.+)$ [NC]<br/>
RewriteRule ^(.*)$ http://www.client_site.net/ [R=301,L]<br/>

在 server_site 上:

RewriteEngine on <br/>
RewriteCond %{REQUEST_FILENAME} !-f<br/>
RewriteCond %{REQUEST_FILENAME} !-d<br/>
RewriteCond $1 !^(index\.php|images|img|css|js|robots\.txt)<br/>
RewriteCond $1 !^(index\.php|application/views/|robots\.txt|install|favicon\.ico|documents)<br/>
RewriteRule ^(.+)$ index.php?/$1 [L,QSA]<br/>
RewriteCond %{HTTP_HOST} !^www\.<br/>
RewriteRule ^(.*)$ http://www.[%]{HTTP_HOST}/server_site/$1 [R=301,L]<br/>

有人,你能帮帮我吗?

4

1 回答 1

1

在服务器端,你有两个问题

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

这与客户端不同的是.+vs .*index.phpvs/index.phpL,QSAvs L

第二点可能更严重,[%]{HTTP_HOST}行不通,因为它没有被替代。您必须%{HTTP_HOST}改用

RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/server_site/$1 [R,L]

当一切按预期工作时,您可以更改RR=301. 永远不要在启用的情况下进行测试,有关详细信息301,请参阅此答案提示调试 .htaccess 重写规则

于 2013-04-16T05:54:23.590 回答