我已经尝试了不少答案,但不断反对好恐怖,404恐怖墙。我在Windows 7上使用xamp堆栈。 mod_rewrite已启用。
我将htaccess文件放在主“codeigniter”目录中,即带有application,system和user_guide的目录。我应该把它放在应用程序目录下吗?带有views / model / config / etc的那个?
这是我当前的.htaccess文件:
RewriteEngine On
# Put your installation directory here:
# If your URL is www.example.com/, use /
# If your URL is www.example.com/site_folder/, use /site_folder/
RewriteBase /website/codeigniter/
# Do not enable rewriting for files or directories that exist
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# For reuests that are not actual files or directories,
# Rewrite to index.php/URL
RewriteRule .* index.php/$0 [PT]
访问http://localhost/website/codeigniter/index.php/welcome有效 访问http://localhost/website/codeigniter/welcome不会
我的config.php有
$config['base_url'] = 'http://localhost/website/codeigniter/';
$config['index_page'] = '';
任何帮助都非常感谢!
错误是:
Object not found!
The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.
Error 404
更新 哦,只是想看看apache日志,得到这个错误:
[Thu Mar 08 18:28:25 2012] [error] [client ::1] File does not exist: C:/xampp/htdocs/website/codeigniter/welcome
所以似乎没有采用正确的codeigniter重定向?不确定吗?
答案 0 :(得分:4)
首先创建.htaccess文件并粘贴下面的代码
上的RewriteEngineRewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
然后转到配置文件
$config['index_page'] = 'index.php';
更改为
$config['index_page'] = '';
并享受
答案 1 :(得分:3)
试试这个:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
$config['index_page'] = 'index.php';
更改为
$config['index_page'] = '';
答案 2 :(得分:2)
你在apache中启用了mod_rewrite吗?
答案 3 :(得分:1)
我一次又一次遇到相同的错误,但是经过很少的研究,我找到了解决方法。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /Codeigniter_start/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /Codeigniter_start/index.php/$1 [L,QSA]
</IfModule>
重点是the project folder
。就像我使用RewriteBase /Codeigniter_start/
和RewriteRule ^(.*)$ /Codeigniter_start/index.php/$1 [L,QSA]
一样。
也可以像这样从配置文件index_page进行更改。
$config['index_page'] = '';
希望这会有所帮助。
答案 4 :(得分:0)
尝试将htaccess的最后一行更改为:
RewriteRule .* index.php/$1 [L]
答案 5 :(得分:0)
还可以尝试将配置文件中的请求方法从AUTO
更改为REQUEST_URI
。
答案 6 :(得分:0)
首先,启用&#34;重写模块&#39;在XAMPP中的apache
如果您使用的是XAMPP或WAMP软件包,则可以在以下位置找到该文件:
{xampp_dir}/apache/conf/httpd.conf
{wamp_dir}/apache/conf/httpd.conf
找到以下行并删除“#”符号。
LoadModule rewrite_module modules/mod_rewrite.so
实际上,我们可以通过XAMPP弹出菜单来做鞋面:Apache - &gt; Apache模块 - &gt;重写模块,并选择它以启用它。
其次,我们需要通过以下方式更改htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]