所以我已将我的网站放在网上,只有我的登录页面(Home_controller)工作正常但其他任何页面都无效。
http://www.my-websiteabc.net/
工作正常但不是http://www.my-websiteabc.net/About_cookies
http://www.my-websiteabc.net/Home_controller
和http://www.my-websiteabc.net/home_controller
也不起作用。
我花了一整天时间阅读不同的建议和解决方法,但无法让它发挥作用。
到目前为止我已尝试过:
1.我的控制器文件名和类具有第一个大写字符。例如:
2.我的文件夹结构是:
/.
/my-websiteabc
/my-websiteabc/application
/my-websiteabc/js
/my-websiteabc/css
/my-websiteabc/system
3.我在根文件夹中的.htaccess包含:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
</IfModule>
4.我也尝试在应用程序文件夹中使用/不使用.htaccess:
<IfModule authz_core_module>
Require all denied
</IfModule>
<IfModule !authz_core_module>
Deny from all
</IfModule>
5.我的routes.php:
$route['default_controller'] = 'Home_controller';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
6.And config.php:
$config['base_url'] = 'http://www.my-websiteabc.net/';
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
我在尝试除File not found.
之外的其他任务时获得http://www.my-websiteabc.net/
,但在此页面上所有图片和CSS都是正确的,所以我想我的路径是正确的。
使用CI 3.1.5和PHP 7.1.6
更新05/07:
控制器定义(About_cookies.php
):
<?php
class About_cookies extends CI_Controller {
public function __construct() {
parent::__construct();
$ci =& get_instance();
if ($ci->session->userdata('site_lang')) {
$siteLang = $ci->session->userdata('site_lang');
} else {
$siteLang = 'english';
$this->session->set_userdata('site_lang', $siteLang);
}
$ci->lang->load('home',$siteLang);
}
public function index(){
$data['main_content'] = 'cookies';
$this->load->view('templates/default',$data);
}
}
我的浏览器尝试访问的网址:
http://www.my-websiteabc.net/About_cookies
我的观点:cookies.php
答案 0 :(得分:0)
尝试使用此.htaccess
定义:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
<FilesMatch "\.(html|htm|js|css|php)$">
FileETag None
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</FilesMatch>
SetEnv CI_ENV development
为清楚起见,它有三个部分:
mysite.domain/controller
URI转换为mysite.domain/index.php/controller
。html
,htm
,js
,css
,php
扩展名的文件。这不是您的问题的一部分,但我认为在某些情况下它可能对您有用(您可能希望删除php
扩展名以使CodeIgniter内部缓存起作用。)development
或production
。请注意,此.htaccess
文件应位于index.php
(整个CodeIgniter文件夹树的根目录下)的一侧,而不是在任何文件夹中。
答案 1 :(得分:0)
阅读了很多帖子后,我终于找到了解决方案here。
以下.htaccess
对我有用:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
造成差异的是?
index.php
我无法说这是否会降低效果,但我真的想知道这个?
会发生什么变化。我没有找到关于这个主题的任何文档。