2014-11-05 25 views
0

我已經重寫了URL重寫URL在.htaccess中具有多個值

「123.com/search.php」 到 「123.com/search」 使用下面的規則

RewriteRule ^search$ search.php 

其工作對於me.But,對於 「123.com/search.php?cat=something」 到 「123.com/search/something」 使用規則

RewriteRule ^search/(.*)$ search.php?cat=$1 

不工作。

它顯示錯誤,如

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://123.com/search/styles/common.css".

Resource interpreted as Scripts but transferred with MIME type text/html: "http://123.com/search/scripts/common.js".

我有在123.com/styles和123.com/scripts目錄CSS & js文件。

而且我需要在rewritting URL 123.com/search.php?cat=something &過濾器幫助= SUBCAT到123.com/search/something/subcat

+0

使用這樣的:'重寫規則^搜索/((??styles/| scripts /).*)$ search.php?cat = $ 1' – hjpotter92 2014-11-05 09:13:55

+0

@ hjpotter92我得到了同樣的錯誤。 – shiva 2014-11-05 09:53:02

回答

2

問題在於HTML中。你可能有鏈接像這樣的樣式表和JavaScript文件:

<link rel="stylesheet" href="styles/common.css"> 
<script src="scripts/common.js"></script> 

這些(以及所有類似)的URL必須改爲絕對網址:

<link rel="stylesheet" href="/styles/common.css"> 
<script src="/scripts/common.js"></script> 

說明:

當你在搜索頁面上,搜索頁面的URL將爲:

http://123.com/search/ 

當瀏覽器讀取這個頁面會遇到哪些轉化爲這些URL相對URL:

http://123.com/search/styles/common.css 
http://123.com/search/scripts/common.js 

無論這些網址將被服務器被改寫爲:

http://123.com/search/search.php?cat=styles/common.css 
http://123.com/search/search.php?cat=scripts/common.js 
+0

謝謝!它爲我工作:)不幸的是不能標記你的答案。 – Marciano 2014-12-10 08:52:34