2017-08-15 85 views
0

我試着去我現有的URL重寫從http://localhost/website/article.php?id=5http://localhost/website/article/5因此,我的htaccess代碼htaccess的資源解釋爲樣式表,但使用MIME類型text/html轉

RewriteBase /website/ 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule article/([[email protected]])? article.php?id=$1 [L] 

我得到的是 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost/website/article/css/bootstrap.min.css".

看樣子即文章被添加到文件的URL中,甚至重定向文件目錄。

真實的URL應該是"http://localhost/website/css/bootstrap.min.css"

林很新的htaccess的,並試圖通過從現有的

修訂複製到創建自己的

我實際的問題是,我的資源,網址是也被重新命名。我已經消除了行代碼下降到2線

RewriteEngine On 
RewriteRule article/([[email protected]]) article.php?id=$1 

但現在的資源被重定向到不存在的,而不是http://localhost/website/article/js/main.jshttp://localhost/website/js/main.js

+0

也許您需要將'/ css/bootstrap.min.css'放入您的標記'link'元素中? –

+1

你知道,條件只用於第一次重寫嗎?文章重寫規則總是被執行 –

回答

0

添加重寫條件被重寫排除靜態文件:

RewriteCond %{REQUEST_URI} !\.(?:css|js|jpe?g|gif|png)$ [NC] 
0

我寧願開始重寫規則與方針:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule - [L] 

它將排除所有現有文件(-f)和目錄(-d)被重寫。包括.php文件和css文件

1

檢查主HTML文件中的URL;我懷疑瀏覽器在獲取重寫規則之前正在請求錯誤的URL。如果您有相對URL,例如<script src="js/main.js">,那麼在非重寫版本中,瀏覽器會將其解析爲http://localhost/website/js/main.js,但在重寫版本中,它將解析爲http://localhost/website/article/js/main.js,因爲從瀏覽器的角度來看,HTML文件位於目錄http://localhost/website/article/中,所以它相對於此解決。如果這是問題,您可以將其更改爲src="/website/js/main.js"src="../js/main.js"

相關問題