繁体   English   中英

htaccess代码点火器

[英]htaccess codeigniter

首先为我的英语不好对不起

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

prod机械的结构目录为:
---- www
--------应用程序(文件夹)
--------系统(文件夹)
-------- .htaccess
-------- server_site(文件夹)
---------------应用程序(文件夹)
---------------系统(文件夹)
--------------- .htaccess

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

我不明白为什么,或者我为应用程序输入了错误的代码,但是当我检查控制器和功能时,已经有控制器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/>

有人,你能帮我吗?

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

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

这与.+ vs .*index.php/index.php以及L,QSAL的客户端不同。

第二点可能更严重,因为[%]{HTTP_HOST}不能被替代,所以将无法使用。 您必须改用%{HTTP_HOST}

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

当一切按预期工作时,可以将R更改为R=301 切勿在启用301测试,请参阅此答案有关调试.htaccess重写规则的提示,以获取详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM