我在他们的网站上使用codeigniter提供的htaccess。
一切都工作文件,但当我在网址后使用/
时,一切都搞砸了。
说我的域名为www.example.com/mycontroller
,这样可以正常工作,但www.example.com/mycontroller/
会让所有事情搞砸,没有风格没有图像等等。
我在样式表和图片等链接前面使用base_url()
解决了这个问题。但是没有其他方法可以让我不必浏览每个图片和链接来添加base_url()
.htaccess文件包含
RewriteEngine on
RewriteCond $1 !^(index\.php|css|images|robots\.txt)
RewriteRule ^(.*)$ ./index.php/$1 [L]
答案 0 :(得分:2)
您应该允许文件和文件夹传递
RewriteEngine on
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond $1 !^(index\.php|css|images|robots\.txt)
RewriteRule ^(.*)$ ./index.php/$1 [L]
是的,您应该添加base_url
,否则您的应用程序便携性降低,维护成为噩梦
答案 1 :(得分:1)
尝试检查请求是否指向文件或目录:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|css|images|robots\.txt)
RewriteRule ^(.*)$ ./index.php/$1 [L]
如果您没有正确的理由,可以相对于图像或css文件的基本目录进行链接。