我正在尝试删除我的localhost中的index.php,但它似乎无效,它在http://localhost/testing
上。
我将.htacces放在htdocs下的'testing'目录中。
LoadModule rewrite_module modules/mod_rewrite.so
在Apache / conf也已经取消选中。
这是我的.htaccess:
RewriteEngine On
RewriteBase /testing/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /testing/index.php/$1 [L]
这是我的配置:
$config['base_url'] = "http://localhost/testing";
$config['index_page'] = '';
$config['uri_protocol'] = 'AUTO';
当我访问登录控制器时,找不到它。
未找到
在此服务器上找不到请求的URL /测试/登录。
我真的不知道下一步该尝试什么。任何帮助将不胜感激。
答案 0 :(得分:1)
试试这个: -
Config.php: -
$config['base_url'] = 'http://localhost/testing/';
$config['index_page'] = '';
的.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
答案 1 :(得分:0)
基本上index.php包含在所有网址中:
我们可以使用简单的规则使用.htaccess删除它。以下是此类文件的示例,使用"否定"一切都被重定向的方法,
RewriteEngine on
RewriteBase /testing/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
现在重新启动服务器并检查
答案 2 :(得分:0)
您的htaccess
应该是
RewriteEngine On
RewriteBase /testing/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
由于/testing/
已经处理了此问题,因此无需追加RewriteBase
。
答案 3 :(得分:0)
忽略RewriteBase
中的尾部斜杠:
RewriteEngine On
RewriteBase /testing
RewriteCond $1 !^(index\.php|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
$config['base_url']
应为http://localhost/testing/
$config['index_page']
应为空白。
答案 4 :(得分:0)
在.htaccess文件中尝试这个:
RewriteEngine on
RewriteCond $1 !^(index\.php|robots\.txt|resources)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [L]
ErrorDocument 404 /mainpage
您的配置文件很好
差异是“?”在index.php之后
答案 5 :(得分:0)
您可能还想尝试在./application/config/config.php中更改$config[‘uri_protocol’]
的值。有时CodeIgniter会弄错。将其更改为PATH_INFO
可能会有效。