2015-11-02 18 views
2

我在.htaccess中使用了mod_rewrite。我無法弄清楚如何完成以下工作。mod-rewrite for css,js,html和Apache/PHP中的目錄

  • 所有的CSS的網頁應該去/minify/?f=/styles.css
  • 所有的JS網頁應該去/minify/?f=/js.js
  • 所有.txt.gif.jpg.png文件應該開,因爲它們是
  • 所有其他頁面(例如:/page/dir/page,/dir1/dir2/page)應該去/page.php
  • 目錄中的所有其他文件應打開爲它是(如:/admin/login.php

編輯: 這是我想出了這個代碼。這不是優雅的,有時會失敗。例如:我不能讓/admin/login.php工作。當我打開該網址時,它會打到page.php

RewriteEngine on 
RewriteCond %{REQUEST_URI} !(\.css|\.js|\.png|\.jpg|\.gif|\.txt)$ 
RewriteRule .* page.php 
RewriteRule ^.*?\.css$ /min/?f=/styles.css [L] 
RewriteRule ^.*?\.js$ /min/?f=/js.js [L] 
+0

大。那麼除了寫一個需求列表之外,你真的嘗試過什麼嗎?您的.htaccess如何查看以及它究竟在哪裏/如何失敗?你諮詢了什麼資源? – planetmaker

+0

道歉。我粘貼了我到目前爲止的代碼。這不是優雅和/管理/ ...頁面不起作用。我希望你們能更好地幫助我。 –

回答

1

嘗試以下操作:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !\.(css|js|png|txt|gif|jpe?g)$ 
RewriteRule^/page.php [L] 

RewriteRule \.css$ /minify/?f=/styles.css [NE,L] 
RewriteRule \.(js)$ /minify/?f=/$1.$1 [NE,L] 
+0

我試過你的代碼,它對所有的URL都很好,除了/。對於http://網站和http:// website /,我得到403 Forbidden錯誤。它的工作http:// website/dir url。 –

+0

@Castortroy 403由別的東西引發。 – hjpotter92

+0

我沒有index.php文件。它也應該去page.php。我刪除了.htaccess中的所有代碼並嘗試了,但仍然禁止403。所以,我猜這是因爲缺少索引文件,但我希望它們被髮送到page.php –