我已经阅读了多个线程,人们有类似的问题,没有一个解决方案似乎适合我。我的网站托管在http://localhost/mysite/.
我有一个编码器网站,我使用XAMPP。
任何时候我想访问一个页面,我有index.php在url (http://localhost/mysite/index.php/newpage或http://localhost/mysite/index.php/anothernewpage)
这是我的。htaccess文件RewriteEngine on
RewriteCond $1 !^(index.php|resources|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
这是我的配置文件
$config['base_url'] = "http://localhost";
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
这是我的路线
$route['default_controller'] = 'welcome';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;
我还取消了httpd.conf文件(XAMPP)中的以下行注释
LoadModule rewrite_module modules/mod_rewrite.so
如果我试图访问网站的一个区域,不包括index.php (http://localhost/mysite/newpage)I)得到一个错误404请求的URL在这个服务器上找不到。我必须把完整的网址http://localhost/mysite/index.php/newpage。有人能帮我弄清楚这个设置有什么问题吗?
您的基础url应该是$config['base_url'] = "http://localhost/mysite";
在.htaccess的根目录下(如果不存在,创建一个):
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
应用程序/config/config . php
$config['base_url'] = ((isset($_SERVER['HTTPS']) && (strtolower($_SERVER['HTTPS']) || $_SERVER['HTTPS']==1)) ? "https" : "http")."://".$_SERVER['HTTP_HOST']."/";
在$config['base_url']中的'/'后面添加sitename