使用https时,https无法找到codeigniter控制器。运行Centos

时间:2013-06-29 17:58:44

标签: php codeigniter ssl https centos

所以我设置https来在我的网站上工作。主页有效。 https://mysite.com但是当您尝试转到https://mysite.com/join这样的子文件夹时,会收到以下错误消息。

未找到

在此服务器上找不到请求的网址/join/index.php。

mysite.com端口443上的Apache / 2.2.8(CentOS)服务器

就好像它无法理解codeigniter。下面是我的htaccess文件。

RedirectMatch 404 /\\.git(/.*|$)

RewriteEngine On
Options +FollowSymLinks
RewriteBase /
RewriteCond $1 !^(index\.php|images|img|js|css)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L] 
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https: //%{SERVER_NAME}%{REQUEST_URI} [R=301] 
ErrorDocument 404 /system/error/404page.html

我加倍检查ssl虚拟主机与其他几个开发人员,它设置正确。主页的工作原理并不奇怪,这很奇怪。我猜是因为主页上有codeigniter index.php来查看。

我将基本网址设置为https://mysite.com

我缺少codeIgniter中的一些设置吗?

2 个答案:

答案 0 :(得分:1)

我终于想通了。

httpd.conf中的

我不得不改变这个:

<Directory />
Options FollowSymLinks
AllowOverride None

</Directory>

对此:

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

我知道这很小,很讨厌。谢谢你的帮助!

答案 1 :(得分:0)

更改此行:

RewriteRule ^(.*)$ index.php?/$1 [L] 

到:

RewriteRule ^(.*)$ /index.php?/$1 [L] 

否则.htaccess将被重定向到join文件夹中的index.php,当然不存在。