2014-02-23 34 views
0

我在使用RewriteRules在.htaccess中重寫我的目錄中的一系列文件時遇到問題。htaccess的問題,重寫到目錄中的文件

index.php?page=page_name

這一個是工作,到目前爲止,我已經成功地使用它。

#RewriteRule ^([A-Za-a0-9-]+)/?$ index.php?page=$1 [NC] 
#RewriteRule ^([A-Za-a0-9-]+)/([0-9-]+)/([A-Za-a0-9-]+)?$ index.php?page=$1&id=$2&name=$3 [NC] 

我已經能夠做到這一點的意見,通過index.php文件,這是上述名稱鏈接。

我的挑戰是在的public_html /視圖鏈接文件/ CSS/style.css中目錄,以使它看起來像的public_html/CSS/style.css中

這是我到目前爲止一直在努力,這是行不通的:

#RewriteRule ^css/(.*)$ /view/css/$1 [NC,L] 

我在文件:

view/css 
view/js 

和一些其他目錄。我想他們看起來像:

domain_name.com/css/style.css 
domain_name.com/js/style.css 

請告訴我我做錯了什麼,爲什麼這是行不通的。

+1

您不應該重寫您的JS或CSS文件。只需使用絕對鏈接或在路徑前加'/'。 –

+0

這個想法是,我不想透露文件的位置,不僅僅是js和css文件,還有其他一些形式的動作文件。 –

+0

沒關係。瀏覽器必須下載文件才能呈現頁面,因此無論訪問那些文件的內容如何。你也可以在瀏覽器開發工具中看到它們。試圖隱藏它沒有意義。 –

回答

0

你可以在你的根的.htaccess使用這樣的規則:

RewriteRule ^(js|css)/(.+)$ /view/$1/$2 [NC,L] 
0

取出#標誌;它會將整行變成註釋並且意味着您的規則永遠不會執行:

RewriteRule ^css/(.*)$ /view/css/$1 [NC,L] 
RewriteRule ^js/(.*)$ /view/js/$1 [NC,L] 
+0

我試過了,但不起作用。這些文件位於http://domain_name.com/views/css/style.css中,但我想將它指向http://domain_name.com/css/style.css。我試過上面的例子,但它不起作用 –

+0

我想我可能誤解了你的問題。只是要清楚:你的規則是否包含散列符號('#'),就像他們在你的問題中一樣?你確實意識到以'#'開始的行是一個註釋,意味着它不會作爲規則處理,對吧?嘗試你的原始規則('RewriteRule^css /(.*)$/view/css/$ 1 [NC,L]')而不使用散列。 –