2013-09-26 49 views
1

的.htaccess的htaccess的rewrite沒有地址欄正確改寫

RewriteEngine On 
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/$ http://localhost/website/sale/phones/index.php?type=$1&location=$2 
RewriteRule ^([A-Za-z0-9-]+)/$     http://localhost/website/sale/phones/index.php?type=$1 

我已經建立了類似的聯繫這

if (!isset($_GET['type'])) { 
    $query = "SELECT type, url FROM {$phones}"; 

    $result = mysql_query($query); 

    while($phone = mysql_fetch_assoc($result)) { 
     echo '<li><a href="'. $phone['url'] .'/">'. $phone['type'] .'</a></li>'; 
    } 
} else { 
    $query = "SELECT location, url FROM locationstwo LIMIT 100"; 

    $result = mysql_query($query); 

    while($location = mysql_fetch_assoc($result)) { 
     echo '<li><a href='. $_GET['type'] .'/'. $location['url'] .'/>'. $location['location'] .'</a></li>'; 
    } 
} 

?>

的URL顯示爲localhost /網站/銷售/電話/ phonetype /位置/在左下角作爲通緝

但一旦鏈接被點擊,t他地址欄出現與?變量

本地主機/網站/銷售/手機/的index.php?類型= phone型&位置=位置 當我真正想爲localhost /網站/銷售/電話/手機類型/位置/

是否與.htaccess有關?

說,當用/ phone-type/location /通過參數顯式輸入時,htaccess正在工作,但地址欄只是用?varialbe顯示它們。

我該如何解決這個問題?謝謝。

回答

1

這是由於不正確的重寫規則。確保使用沒有域的路徑作爲目標。用這個代替你的代碼:

RewriteRule ^([\w-]+)/([\w-]+)/?$ /website/sale/phones/index.php?type=$1&location=$2 [L,QSA] 
RewriteRule ^([\w-]+)/?$ /website/sale/phones/index.php?type=$1 [L,QSA] 
+0

唉,這似乎工作!謝謝!但是,我的樣式表似乎改變了路徑。可以使用來修復嗎?謝謝 – Ultigma

+0

你可以使用''標籤或者更好地使用絕對路徑來表示css,js,圖像,即以'/'或'http://開始' – anubhava

相關問題