2013-11-25 73 views
0

我在Windows中的XAMPP服務器上使用Codeigniter。我刪除從URL使用.htaccess文件和下面的Apache的mod_rewrite index.php文件:在codeigniter中刪除index.php後解決mod-rewrite問題

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /mysite/ 

    RewriteCond %{REQUEST_URI} ^system.* 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 

    RewriteCond $1 !^(index\.php|favicon\.ico|robots\.txt|css|js) 
    RewriteRule ^(.*)$ /mysite/index.php/$1 [L] 
</IfModule> 

我的文件夾結構是:

htdocs\mysite\index.php 
htdocs\mysite\application\... 
htdocs\mysite\system\... 
htdocs\mysite\js\... 
htdocs\mysite\css\... 
... 

我有一個名爲「主」控制器是默認的控制器和另一個控制器分別命名爲「新聞」和兩個名爲「索引」和「顯示」的功能。所有控制器的功能使用名爲「header.php文件」單一視圖文件中加入如下兩個文件:

<link type="text/css" rel="stylesheet" media="screen" href="css/default.css" /> 
<script type="text/javascript" src="js/jquery.min.js"></script> 

但問題是什麼?只有主/索引可以訪問.js和.css文件。主/節目,新聞/指數和新聞/圖片的效果像一個網址:

http://localhost/mysite/news/js/jquery.min.js 
http://localhost/mysite/news/css/default.css 

如果我使用「../js/jquery.min.js」和「../css/default.css」在header.php中,除了main/index之外,問題將得到解決。我不想爲main/index和其他控制器和函數使用不同的頭文件,因爲頭文件在所有頭文件中都是相同的。有解決方案使用Apache mod_rewrite或Codeigniter路由配置來解決此問題嗎?

預先感謝您

回答

0

選項1:使用完整的相對路徑來現場

<script type="text/javascript" src="/mysite/js/jquery.min.js"></script> 

選項2:使用base_url()(必須在config.php中設置)

$config['base_url'] = 'http://www.example.com/mysite/'; 

-

<script type="text/javascript" src="<?php echo base_url() . "js/jquery.min.js"; ?>"></script> 

這不是路由問題或您的.htaccess

+0

謝謝stormdrain – user2573428

0

如果你不介意這樣做

<script src="<?php echo site_url('js/jquery.min.js'); ?>"></script> 

取而代之的是:

<script type="text/javascript" src="<?php echo base_url() . "js/jquery.min.js"; ?>"></script> 

,並刪除它不需要type="text/javascript"