我的codeigniter mod_rewrite配置有问题... 这是我目前的配置:
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^.* https://www.%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent,L]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^.* https://%{SERVER_NAME}%{REQUEST_URI} [END,QSA,R=permanent,L]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ https://%{SERVER_NAME}/index.php/$1 [L]
请注意,这不在.htaccess文件中,这是在我的虚拟主机文件中。
访问example.com会重写为https://www.example.com 并访问www.example.com重定向到https://www.example.com
但访问https://www.example.com/login会显示404页面...
由于
答案 0 :(得分:1)
Codeigniter URL的结构如下:
SITE_URL /控制器/方法
在以下情况下发生404页面错误:
答案 1 :(得分:0)
第一条规则基本上没问题。第二条规则并不好,不知道你是如何从中获得无限重定向的。第三条规则有冗余条件和外部重定向格式,但应该是内部重写。除非您的替换包含QSA
,否则您不需要?
。如果没有?
,则会自动附加查询。
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [R=permanent,L]
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [R=permanent,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(?!index.php(?:$|/)).+$ index.php/$0 [END]