CodeIgniter .htaccess RewriteRule导致404 Page Not Found

时间:2014-08-28 09:46:45

标签: php codeigniter mod-rewrite

我使用以下.htacces从旧页面路由到新页面:

RewriteEngine on
RewriteCond %{REQUEST_URI} /Uploader2.7.0/secureFileUploader.php
RewriteRule ^(.*)$ /uploader/upload [L,QSA]  

即使重写规则正确,我也找不到' 404页面' 错误。这个.htacces位于我网站的根目录。

基于this answer,我改变了:

$config['uri_protocol'] = 'AUTO';

$config['uri_protocol'] = 'REQUEST_URI';

这使得重新路由规则正常工作,但CLI停止工作。然后我看到this question表示如果我将' uri_protocol' 更改回

,它会起作用
$config['uri_protocol'] = 'AUTO';

有没有办法让两者兼顾?

注意:重写规则有效,问题在于CodeIgniter内部路由。我可以使用RewriteRule规则或CLI,而不是两者。

修改

我希望网址/Uploader2.7.0/secureFileUploader.php在内部成为/uploader/upload,我设法使用上述规则。

Codeigniter /uploader路径中的

index.phpupload是我希望路由到的控制器的名称。

/uploader下我有.htaccess文件隐藏了CodeIgniter的index.php,它完美无缺:

DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]  

1 个答案:

答案 0 :(得分:0)

将您的.htacces文件放在相同级别的应用程序user_guide文件夹中。 所以你的codeigniter文件夹中共有6个文件,包括index.php和许可文本文件以及.htaccess文件。

This image is useful for you