Büyü gizli özellikleri
mod_rewrite konuları iyi bir dizi son zamanlarda bazı yönlerini nasıl çalıştığını üzerinde biraz kafa karışıklığı ile yüzer gibi görünüyor. Sonuç olarak ortak işlevselliği, ve belki bir kaç can sıkıcı bir nüanslar üzerine bir kaç not hazırladım.
Ne diğer özellikleri ortak sorunlar / mod_rewrite kullanarak üzerinde çalışacak mı?
CEVAP
Büyü kuralları yerine
mod_rewrite kurallar .htaccess dosya içinde httpd.conf dosya içinde, ya da yerleştirilebilir. eğer 15**, kurallar koyarak erişimi varsa, burada bir performans yararı kuralları .htaccess dosyası her çağrıldığında farklı olarak bir kez işlenmiş, gibi) sunacak.
Büyü istekleri günlüğü
httpd.conf dosya içinde etkin olabilir (<Virtual Host> dahil) günlüğü:
# logs can't be enabled from .htaccess
# loglevel > 2 is really spammy!
RewriteLog /path/to/rewrite.log
RewriteLogLevel 2
Ortak kullanım örnekleri
tek bir noktadan tüm istekleri huni için:
RewriteEngine on # ignore existing files RewriteCond %{REQUEST_FILENAME} !-f # ignore existing directories RewriteCond %{REQUEST_FILENAME} !-d # map requests to index.php and append as a query string RewriteRule ^(.*)$ index.php?query=$1Apache 2.4 beri de
FallbackResourcekullanabilirsiniz.301/302 yönlendirmeler için:
RewriteEngine on # 302 Redirect RewriteRule ^oldpage.html$ /newpage.html [R=302] # 301 Redirect RewriteRule ^oldpage2.html$ /newpage.html [R=301]not: dış yönlendirmeler yönlendirmeler: örtülü 302
# this rule: RewriteRule ^somepage.html$ http://google.com # is equivalent to: RewriteRule ^somepage.html$ http://google.com [R] # and: RewriteRule ^somepage.html$ http://google.com [R=302]SSL zorluyor
RewriteEngine on RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://example.com/$1 [R,L]ortak bayrak kullanımı:
- [R] bir yönlendirme (varsayılan 302) kuvvet
- [R=301] 301 yönlendirme gücü
- [L] yeniden yazma işlemi (not aşağıda ortak tuzaklar bakın) dur
- [NC] büyük / küçük harf duyarlı eşleşen
mix ve MAÇ bayraklar
RewriteRule ^olddir(.*)$ /newdir$1 [L,NC]
Ortak tuzaklar
mod_aliasstili karıştırmamod_rewriteile yönlendirir# Bad Redirect 302 /somepage.html http://example.com/otherpage.html RewriteEngine on RewriteRule ^(.*)$ index.php?query=$1 # Good (use mod_rewrite for both) RewriteEngine on # 302 redirect and stop processing RewriteRule ^somepage.html$ /otherpage.html [R=302,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # handle other redirects RewriteRule ^(.*)$ index.php?query=$1not:
mod_rewriteilemod_aliaskarıştırabilirsiniz ama sadece yukarıdaki gibi temel yönlendirmeler için daha fazla çalışma gerektirir.içerik sözdizimi etkiler
.htaccessdosyaları içinde, önde gelen eğik desen kullanılmaz:# given: GET /directory/file.html # .htaccess # result: /newdirectory/file.html RewriteRule ^directory(.*)$ /newdirectory$1 # .htaccess # result: no match! RewriteRule ^/directory(.*)$ /newdirectory$1 # httpd.conf # result: /newdirectory/file.html RewriteRule ^/directory(.*)$ /newdirectory$1 # Works in both contexts: RewriteRule ^/?directory(.*)$ /newdirectory$1[L] son değildir! (bazen)
.htaccesskapsamında, [L]mod_rewritedurdurmak için güç olmayacaktır. iç-istekleri alt tetiklemek için devam eder# processing does not stop here RewriteRule ^dirA$ /dirB [L] # /dirC will be the final result RewriteRule ^dirB$ /dirCbizim günlük gösterileri detayları yeniden yazmak:
rewrite 'dirA' -> '/dirB' internal redirect with /dirB [INTERNAL REDIRECT] rewrite 'dirB' -> '/dirC'Bu gibi durumlarda
[END][L]yerine kullanılmalıdır.

Harika gizli özellikleri?...
HTTP gizli özellikleri...
En iyi raylar ile html5 veri özellikle...
C nesne özellikleri karşılaştırarak#...
Ne'in (gizli) maliyet'In laz...