2012-10-21 18 views
0

我在的.htaccess有這樣的重寫時錯誤:的.htaccess使用一個以上的參數

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule . /index.php 

,這是我如何與參數的工作原理:

<?php 
    $request = $_SERVER['REQUEST_URI']; 
    $request = substr($request,1); 
    $params = explode('/', $request); 
    $safe_pages = array('page1','page2','page3'); 
    if(in_array($params[0],$safe_pages)) 
      { 
       include($params[0].'.php'); 
      }else 
      { 
       include('404.php'); 
      } 
?> 

比方說,我的網站:www.site.com

www.site.com/page - >作品完美

www.site.com/page/parameter - > DOE不加載任何CSS或圖像,因爲它在根/頁面而不是根目錄查找它們/

我試圖使用絕對鏈接爲我的CSS和圖像,但它仍然沒有工作,所以我想問題是在.htaccess或我錯過了一些東西。

回答

1

問題在於不在htaccess重寫規則中,但是在您的html-yuor靜態內容鏈接(如css,圖像或腳本)應該以斜槓開始與域相關。因此,而不是

<link href="css/style.css" /> 
<script src="js/script.js"><script> 

使用

<link href="/css/style.css" /> 
<script src="/js/script.js"><script> 

另一種方法是使用base標籤,但它可以打破命名錨頁面上

+0

這樣比較好。不能相信我沒有想到這一點。謝謝! –

1

使用

<base href="http://absolute_path_here/"> 
在HTML

收盤</head>之前。

+1

我不得不使用它immediateldy 後,所以它也將加載CSS和JS和它的工作。非常感謝 ! –