[英]CodeIgniter 3 : Rewriting URL with assets
我在CodeIgniter 3中面临URL重写的问题。
我的文件结构是:
site
-assets (.css and .js files)
-application (sites files : controller, ...)
-system (CI files)
-user_guide
为了避免在URL中使用index.php /,我使用了以下配置:
.htaccess
RewriteEngine on
RewriteCond $1 !^(index.php|resources|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
config.php
$config['index_page'] = '';
这样,我的网址不是test.com/index.php/user/function而是test.com/user/function 。 实际上, 一切工作都很好 ,但是当某些.js脚本尝试使用相对URL调用其他脚本时,它将调用错误的URL。 例如,如果我的脚本之一想要调用assets/js/jsfile.js
,那么我会遇到404错误,因为它调用了http://www.test.com/user/assets/js/jsfile.js
,而它应该是http://www.test.com/assets/js/jsfile.js
。
为了避免这种情况,我在每个自称的<link>
或<script>
<?php echo base_url() ?>
中都放置了<?php echo base_url() ?>
,但是某些.js库需要进行内部调用,而我每次都不能这样做。喜欢真正的解决方案...有什么主意吗? 非常感谢 !
像这样更改您的htaccess文件;
RewriteCond $1 !^(index.php|resources|robots.txt|assets)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.