Codeigniter的URL重写

A.N*_*lam 6 php url .htaccess codeigniter url-rewriting

我正在使用以下htaccess脚本,以便我可以隐藏index.phpURI.

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|assets|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)

但我面临一个重大问题:(

我有一个名字assets在我的index.php文件旁边,它应该在那里.当我通过浏览器浏览目录时,将显示Codeigniter 未找到的页面.我无法浏览文件,/assets/image.jpg但是当我从<img>标签中调用它时它会显示

我现在能做什么?

请注意,它在我的本地服务器(localhost)中工作,但不在实时服务器中.

cor*_*ard 7

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(.*)$ /index.php/$1 [NC,L]
Run Code Online (Sandbox Code Playgroud)

这将传递Apache不会向CodeIgniter提供服务的任何请求.这样您就可以自由地创建目录而无需更新重写规则,并且您不需要在Apache中设置404处理(甚至在您的图像/资源目录中).

感谢Zend Framework的作者在他们的用户指南中推荐这一点.对于CodeIgniter,此版本稍作修改.