2010-01-15 31 views
7

Im yükleme phpancake, buBu Yeniden Yazım kuralı ne anlama geliyor?

application/ 
install/ 
library/ 
public/ 
sql_schema/ 
install.html 
install.php 

gibi orada klasör shema bu kural ne demek olduğunu?

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ /vote/public/index.php [NC,L] 

cevap

11

Yeniden yazmanın iki bölümü vardır. İlki, istenen dosya adı, 0'dan büyük (-s), sembolik bir bağlantıya (-l) veya bir dizine (-d) sahip düzenli bir dosyaysa, örneğin hiçbir yere yeniden yazmamaya belirtir. eylemsiz kal. [NC,L], kuralın büyük/küçük harfe duyarlı olmadığı ve bu koşulların uyuştuğu son kural anlamına gelir.

Diğer tüm istekler /vote/public/index.php'a iletilir.

Bu yeniden yazımın amacı, gerçek, var olan bir dosyanın sunucudan girişim olmaksızın alınabilmesidir. İlk kural olmaksızın, her dosya talebi (css ve js dosyaları, görüntüler vb.), Çok kötü bir şekilde karışıklık yaratacak olan index.php'a gider. Yine de bu bir deklarasyonda yazılmıştır. Sen koşullarını ortadan kaldıran ve sonra [OR] Önermeler da dışarı alınabilir:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-s 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^.*$ /vote/public/index.php [NC,L] 

Bu orijinal ifadesine eşdeğerdir. @Tatu Ulmanen'in cevabından gelen

+0

@Tatu Ulmanen: "RewriteCond% {REQUEST_FILENAME} -f" nin ne anlama geldiğini açıklayabilir misiniz? '-s' ve '-f 'seçenekleri farklı olan" boyut "mu? Ve ayrıca düzenli dosyalar (İkili değil) ne olurdu? –

0

olanlar istenen dosya (veya dizin veya sembolik bağlantı), diskte var olup olmadıklarını ağırlıklı standart yeniden yazar olan bu durumda dosya/dizin/vb. kullanılmalıdır.

Diğer tüm maçları,

+0

, "RewriteCond% {REQUEST_FILENAME} -f" nin ne anlama geldiğini açıklayabilir misiniz? '-s' ve '-f 'seçenekleri farklı olan" boyut "mu? Ve ayrıca düzenli dosyalar (İkili değil) ne olurdu? –

0

ilk kural sıfır (-s) daha büyük bir boyuta sahip normal bir dosyaya eşlenebilir tüm istekleri geçecek /votes/public/index.php sembolik gitmeli bağlantı (-l) veya bir dizin (-d). Diğer her istek ikinci kural tarafından getirilir ve /vote/public/index.php'a yeniden yazılmıştır.