我正在使用Codeigniter,我希望省略url的index.php部分。我设法在我的webroot上使用.htaccess这样做:
RewriteEngine on
RewriteCond $1 !^(index\.php|images|stylesheets|scripts|css|jpg|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
并使用
$config['index_page'] = '';
这很有用,像subdomain.example.com/class/method这样的网址按预期工作。
现在我开始将我的视图的样式表和图像添加到我的webroot下名为“style”的文件夹中。但是,当我尝试访问它们时,我收到错误404。 我试图在我的观点中以多种方式使用这些:
<img src="/style/img.jpg">
<img src="style/img.jpg">
<img src="<?php echo base_url('/style/img.jpg');?>">
<img src="http://subdomain.example.com/style/img.jpg">
<img src="<?php echo base_url();?>style/img.jpg">
base_url()给出了http://subdomain.example.com/。样式文件的用户模式设置为755,如果这是有用的信息。我的猜测是,.htaccess以某种方式阻止了这些。我用谷歌搜索了,似乎很多人都有类似的问题,但我没有设法找到一个可以帮助我使用图像并省略index.php的答案。这是我在搜索到这些答案后得到的htaccess的地方,但仍然没有运气图像:
#Enable mod rewrite
RewriteEngine On
#Removes access to CodeIgniter system folder by users.
#Additionally this will allow you to create a System.php controller,
#previously this would not have been possible.
#'system' can be replaced if you have renamed your system folder.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#This last condition enables access to the images and css
#folders, and the robots.txt file
RewriteCond $1 !^(index\.php|style|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php?/$1 [L]
我没有想法。
答案 0 :(得分:1)
尝试更改.htaccess
文件以将index.php删除到此
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|ref_doc|media|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
这应该有效
答案 1 :(得分:0)
尝试在重写规则中添加这样的内容(在htaccess结束时):
RewriteRule directoryname - [L]
抱歉,我现在无法自己测试。