的重寫規則是這樣的:重寫規則和相對路徑樣式表的問題
RewriteRule ^(.*)/(.*)$ index.php?search=$1&Page=$2
樣式表的參考是這樣的:
<link type="text/css" rel="stylesheet" href="/css/style.css">
當我穿上樣式表重寫被忽略。請幫我寫出正確的規則,謝謝!
這是在.htaccess在根做/
的重寫規則是這樣的:重寫規則和相對路徑樣式表的問題
RewriteRule ^(.*)/(.*)$ index.php?search=$1&Page=$2
樣式表的參考是這樣的:
<link type="text/css" rel="stylesheet" href="/css/style.css">
當我穿上樣式表重寫被忽略。請幫我寫出正確的規則,謝謝!
這是在.htaccess在根做/
我假設你不想重定向任何請求實際存在的文件,而不僅僅是CSS文件。例如,如果你有一個帶有圖像文件的/images
目錄,你可能不希望你的PHP腳本處理這個目錄,而不是你希望它處理你的CSS文件。
這些「標準」規定,提供的是:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
這些條件語句其中說:「如果下列條件爲假,忽略接下來RewriteRule
被評估的實際情況是檢查,以確保。請求不是針對實際存在的文件或目錄
這意味着,當您請求/css/style.css
時,Apache將會看到有一個該名稱的文件已存在,因此它將忽略您的重寫並提供文件直接。
鏈接到您的樣式表被改寫爲index.php文件。爲了避免這種情況,開始是這樣的:
RewriteRule ^css/ - [NC,L]
這將導致不被改寫的CSS目錄什麼(除非有某種原因.htaccess文件中的CSS,這將是不尋常的)。
你能否擴展你的問題並告訴我們你想用這個重寫規則來達到什麼目的?實際上,它會通過/來接收每個請求並重寫它。 – 2011-04-06 18:44:05
是的。我想擁有mydomain.com/searchterm/page URL結構,而忽略像/ css /和/ images /和/ includes /等目錄中的文件。 – Kevin 2011-04-06 18:54:20
要清楚,'$ 1'將包含所有* final *斜槓在URL中,而不是第一個,因爲'。*'將匹配任何字符,*包括*任何斜線(除了最後一個,因爲它需要匹配整個模式)。這可能是你期望的,但它可能不是,所以我覺得值得一提。 – AgentConundrum 2011-04-06 19:02:24