Bu neden işe yarıyor:
RewriteRule (.+)/$ $1
ve bu iş:
RewriteRule (.+)/$ $1 [L] #bla bla bla
ama bu çalışmıyor:
RewriteRule (.+)/$ $1 #bla bla bla
Bu neden işe yarıyor:
RewriteRule (.+)/$ $1
ve bu iş:
RewriteRule (.+)/$ $1 [L] #bla bla bla
ama bu çalışmıyor:
RewriteRule (.+)/$ $1 #bla bla bla
Yanıtlar:
Son kural işe yaramıyor çünkü yorumlar gerçekten yorum değil. Htaccess'teki yorumlar bir ile başlamalıdır#
değil keyfi her yerde (bir satırın başında olmalı) ve.
İkinci durumda, direktifin sadece göz ardı edilen #bla bla bla
4. parametresi olarak yorumlanır RewriteRule
.
Son durumda, #bla bla bla
3. parametre olarak yorumlanır, bu RewriteRule
durumda bayrakların gittiği yerdir ve #bla bla bla
mod_rewrite'ın anladığı herhangi bir bayrak olmadığı için bir hata alırsınız.
#
hattın "başlangıç" olmalıdır, bu boşluk herhangi bir miktarda öncesinde edilebilir. (Fazla) .htaccess'teki boşluk yok sayılır ve satırların başlangıcı dahil herhangi bir yere "serpilebilir". Diğer bir deyişle, #
bir satırdaki ilk boşluk olmayan karakter olmalıdır. Yanlışlıkla #
en soldaki sütunda 1. karakter olması gerektiğini düşünürdüm !
Apache'nin yapılandırma dosyası biçimi (bu .htaccess
dosyalar bir örnektir) teknik olarak satır içi yorumları desteklemez, yalnızca tam satır yorumları (yani a ile başlayan bir satır #
) destekler.
Karma karakteri "#" ile başlayan satırlar yorum olarak kabul edilir ve yok sayılır. Yapılandırma yönergesinden sonraki satıra açıklamalar eklenmeyebilir. - Resmi Apache 2.4 kılavuzu
Kafa karıştırıcı bir şekilde, her modül kendi yönergeleri için girdiyi istediği şekilde ayrıştırır - bu nedenle mod_rewrite
ile başlayan herhangi bir satırla ne yapılacağına karar verir.RewriteRule
Kesin olarak bilmiyorum ama benim tahminim, bundan mod_rewrite
sonraki her şeyi görmezden geliyor [flags]
ve #
aslında gerekli değil.
Yine de en iyi bahis, yorum yaptığınız yönerge ne olursa olsun işe yarayacağından, yorumları her zaman kendi satırında tutmaktır.