0

我在他们的网站上使用 codeigniter 提供的 htaccess。一切正常文件,但是当我/在 url 之后使用 a 时,一切都搞砸了。说我的域名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]
4

2 回答 2

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,否则您的应用程序的可移植性较差,维护将成为一场噩梦

于 2013-02-12T18:57:36.310 回答
1

尝试检查请求是否指向文件或目录:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|css|images|robots\.txt)
RewriteRule ^(.*)$ ./index.php/$1 [L]

如果您没有一些非常好的理由,您可以相对于图像或 css 文件的基本目录进行链接。

于 2013-02-12T18:58:18.737 回答