2011-03-14 30 views
5

varsa yeniden durmak Bu benim htaccess geçerli:mod_rewrite ve .htaccess - Senaryo/dosya

RewriteEngine On 



# Stop if it's a request to an existing file. 

RewriteCond %{REQUEST_FILENAME} -f [NC,OR] 

RewriteCond %{REQUEST_FILENAME} -d [NC] 

RewriteRule .* - [L] 



# Redirect all requests to the index page 

RewriteRule ^([^/])   /index.php   [L] 

Şimdi bu benim index.php komut için her şeyi iletir! Bir komut dosyası mevcutsa durmaz. Bunun neden çalışmadığına dair bir fikri olan var mı? Her yere baktım ama mod_rewrite'i (düşündüğüm kadarıyla) anlamıyorum.

Sorun, web dizinimdeki .js dosyalarını işaret eden ve daha sonra index.php komut dosyasına iletilen <script> etiketlerini koyduğum için geldi. Web geliştirici araç çubuğu bana bunu anlatıyor. :) Ve firefox'un görünüm kaynağı penceresinde js dosyaları bağlantıları tıklayarak index.php çıkışını gösterir.

Teşekkürler.

+0

, doğru mu? – vbence

+0

evet temelde :) –

cevap

8

bir yeniden yazma kuralı işledikten sonra bütün süreci yeni url ile yeniden olmasıdır. Bir URL'nin işlenmesi, değiştirilen URL ile her defasında tekrar tekrar kurallar arasında dolaşabilir, daha fazla değişiklik olmadıkça (uygulama kuralları bulunmaz).

Buna ihtiyacın:
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*)   /index.php   [L] 

bir program olarak kuralların düşünmeyin, bunların üst üste ve her biri ile mümkün olduğunca spesifik olmalıdır kurallardır.

+0

Hey Yanıtınız için teşekkürler. Maalesef kodunuz bana 500 sunucu hatası veriyor. :( –

+0

@Thomas Clayson Kurallarınızı bir araya getirdim.Bunun için var olmayan her isteği "index.php" adresine iletmek için biraz değiştirdim. – vbence

+0

ah Görüyorum, düzenlemeniz mantıklı ve işe yarıyor! 't ...:/ah iyi, sizinkiyle sopa olacak :) teşekkür ederim Eğer kuralların işlenmesini 'dur' olamaz –

1

seni böyle bir ilk koşulu sonra [OR] eklemek gerekir sanırım:

Normalde index.php için 404 neden olur tüm istek iletmek istediğiniz
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule (.*) $1 [QSA,L]