2013-07-25 80 views
1

我試圖隱藏樣式表,以便當用戶直接從瀏覽器訪問它時,它會顯示404,但在我的網站上正確顯示。這可能嗎?我目前正在嘗試:使用htaccess將文件url重寫爲不同的文件?

RewriteEngine On 
Options +FollowSymLinks 
RewriteRule ^/?wp-content/themes/mysteam/style.css$ /wp-content/themes/steam/stylesheet.css [L,NC] 

有沒有什麼辦法可以實現這個目標?

謝謝。

+0

這不僅是不可能的,它也是無稽之談。 – CBroe

回答

1

如果您至少要在1頁上使用它,您不能從客戶端安全地隱藏css文件。在某些情況下,它是使用設置反正

    • 這個頭是可以被欺騙
    • 可以使用Referer標頭重定向到404頁,如果沒有設置,但在查看請求時它仍然可見

    您可以設置一個非常智能的系統,它會爲每個請求生成一個唯一的ID,並且只顯示該css文件ID匹配當前授權查看該頁面的ID,但是:

    • 使用的開發工具,它仍然會觀看請求時存在

    樣式表是從瀏覽器請求的應用可見風格的文本,因此它始終可以使用該瀏覽器創建請求以查看文件的內容(或文件生成的輸出),或者更簡單,通過在瀏覽器需要時查看輸出來實現。


    您使用的語法無效。有關更多信息,請參閱the documentation。該模式不能以/開頭,它不包含查詢字符串。您的重新編寫的代碼如下所示:

    RewriteCond %{QUERY_STRING} ^wp-content/themes/mysteam/style\.css$ 
    RewriteRule ^$ /wp-content/themes/steam/stylesheet.css? [L,NC] 
    

    第一行將匹配查詢字符串。第二行在重寫的部分中有一個尾隨?以清除原始查詢字符串。