Kök

2011-03-25 24 views
6

hariç her şey için Apache mod_rewrite Merhaba Kök klasörü dışındaki her şeyi yeniden yönlendirmek için bir mod_rewrite kuralı yazmaya çalışıyorum. Örneğin, www.example.com, index.html dosyasını herşeyi yüklemelidir. www.example.com/tag,/etiket ben Kök

RewriteCond %{REQUEST_URI} !^/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) app/webroot/$1 [L] 

sahip Ve şu anda bir alt dizinin

bir komut dosyasına geçirilmesi gerektiğini index.html ince ama/etiket geçmedi yükler Webroot'un. 404 hatası alıyorum.

Teşekkür

+0

Yeniden yazma kuralını RewriteRule olarak değiştirirseniz (. *) Http:// alan_adiniz.com/app/webroot/$1 [L, R] Yönlendirdiğiniz URL nedir? – Wige

cevap

7

Bu durum sorun şudur: '/' yeniden yazılarak değil ile başlayan bir şey söylüyorsun

RewriteCond %{REQUEST_URI} !^/ 

ve her şey '/' ile başlar. Sen sonunda $ kullanmak gerekir:

RewriteCond %{REQUEST_URI} !^/$ 

Ben index.html varsa diğer iki kural otomatik olarak o ilgilenir çünkü, ama, hiç kural gerek emin değilim.

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ app/webroot/$1 [L,QSA] 

Ve her halükarda alt dizinleri için gerekecek beri, uygulamanızda 404 hatası işleyebilir: Sadece yok bir şey yeniden yazmak için bu kullanmak fiziksel olarak mevcut.

+0

Mükemmel! Çok teşekkür ederim! Bunu anlamaya çalışırken kafamı 4 saat çalıyordum. – sho