Değiştirmem gerekiyor .htaccess
ve anlamadığım iki satır var.
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Bu satırları ne zaman kullanmalıyım?
Değiştirmem gerekiyor .htaccess
ve anlamadığım iki satır var.
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Bu satırları ne zaman kullanmalıyım?
Yanıtlar:
Tam bir eğitim verilecek yer değil, ama burada kısaca;
RewriteCond temelde "sonraki RewriteRule'u yalnızca bu doğruysa çalıştır" anlamına gelir. !-l
Yol isteği (bağlantı için olmadığı durumdur !
aracı olmadığı, -l
araçlar bağlantı)
RewriteRule temelde istek maçları olduğu yapılırsa anlamına gelir ^(.+)$
(sunucu kök hariç her URL'yi) olarak, bu yeniden yazılır index.php?url=$1
için bir istek anlamına gelir olle
olarak yeniden yazılır index.php?url=olle
).
QSA
orijinal URL ile iletilen bir sorgu dizesi varsa, yeniden yazmaya ekleneceği anlamına gelir ( olle?p=1
olarak yeniden yazılacaktır index.php?url=olle&p=1
.
L
kural eşleşirse, bunun altında daha fazla RewriteRules işlemeyin anlamına gelir.
Bununla ilgili daha eksiksiz bilgi için yukarıdaki bağlantıları izleyin. Yeniden yazma desteğini kavramak biraz zor olabilir, ancak stackoverflow hakkında öğrenilecek epeyce örnek var.
?
etmek &
imkansız ayırt hale /page&foobar
vs /page?foobar
. QSA'nın yerine ?
geçmesini nasıl durdurabilirim &
?
Aşağıdaki koşullar doğruysa, URL'yi yeniden yazın:
İstenen dosya adı bir dizin değilse,
RewriteCond %{REQUEST_FILENAME} !-d
ve istenen dosya mevcut normal bir dosya değilse,
RewriteCond %{REQUEST_FILENAME} !-f
ve istenen dosya adı sembolik bir bağlantı değilse,
RewriteCond %{REQUEST_FILENAME} !-l
daha sonra URL'yi aşağıdaki şekilde yeniden yazın:
Tüm istek dosya adını alın ve bunu index.php'ye bir "url" sorgu parametresinin değeri olarak sağlayın. Orijinal URL'deki herhangi bir sorgu dizesini başka sorgu parametreleri (QSA) olarak ekleyin ve bu .htaccess dosyasını (L) işlemeyi durdurun.
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Başka bir örnek:
RewriteRule "/pages/(.+)" "/page.php?page=$1" [QSA]
[QSA] bayrağıyla,
/ sayfalar / 123? bir = iki
eşlenecek
/page.php?page=123&one=two