Bukan tempat untuk memberikan tutorial lengkap, tapi ini dia singkatnya;
RewriteCond pada dasarnya berarti "jalankan RewriteRule berikutnya hanya jika ini benar". The !-lpath adalah kondisi bahwa permintaan tidak untuk link ( !berarti tidak, -lmenghubungkan berarti)
The RewriteRule pada dasarnya berarti bahwa jika permintaan dilakukan bahwa pertandingan ^(.+)$(cocok URL apapun kecuali root server), maka akan ditulis ulang sebagai index.php?url=$1yang berarti permintaan olleakan ditulis ulang sebagai index.php?url=olle).
QSAartinya jika ada string kueri yang diteruskan dengan URL asli, itu akan ditambahkan ke penulisan ulang ( olle?p=1akan ditulis ulang sebagai index.php?url=olle&p=1.
L berarti jika aturannya cocok, jangan proses RewriteRules lagi di bawah ini.
Untuk info lebih lengkapnya ikuti link di atas. Dukungan penulisan ulang bisa agak sulit untuk dipahami, tetapi ada beberapa contoh tentang stackoverflow yang dapat dipelajari.
QSA menggantikan ?untuk &, sehingga mustahil untuk membedakan antara /page&foobarvs /page?foobar. Bagaimana cara menghentikan QSA untuk mengganti ?ke &?
Pacerier
8
Jika kondisi berikut ini benar, maka tulis ulang URL:
Jika nama file yang diminta bukan direktori,
RewriteCond %{REQUEST_FILENAME} !-d
dan jika nama file yang diminta bukan file biasa yang ada,
RewriteCond %{REQUEST_FILENAME} !-f
dan jika nama file yang diminta bukan tautan simbolis,
RewriteCond %{REQUEST_FILENAME} !-l
lalu tulis ulang URL dengan cara berikut:
Ambil seluruh nama file permintaan dan berikan sebagai nilai parameter kueri "url" ke index.php. Tambahkan string kueri apa pun dari URL asli sebagai parameter kueri lebih lanjut (QSA), dan hentikan pemrosesan file .htaccess (L) ini.
Ini akan menangkap permintaan untuk file seperti version,,
releasedan README.md, dll. Yang harus diperlakukan sebagai endpoint, jika didefinisikan (seperti dalam kasus / release), atau sebagai "tidak ditemukan".
Jawaban:
Bukan tempat untuk memberikan tutorial lengkap, tapi ini dia singkatnya;
RewriteCond pada dasarnya berarti "jalankan RewriteRule berikutnya hanya jika ini benar". The
!-l
path adalah kondisi bahwa permintaan tidak untuk link (!
berarti tidak,-l
menghubungkan berarti)The RewriteRule pada dasarnya berarti bahwa jika permintaan dilakukan bahwa pertandingan
^(.+)$
(cocok URL apapun kecuali root server), maka akan ditulis ulang sebagaiindex.php?url=$1
yang berarti permintaanolle
akan ditulis ulang sebagaiindex.php?url=olle
).QSA
artinya jika ada string kueri yang diteruskan dengan URL asli, itu akan ditambahkan ke penulisan ulang (olle?p=1
akan ditulis ulang sebagaiindex.php?url=olle&p=1
.L
berarti jika aturannya cocok, jangan proses RewriteRules lagi di bawah ini.Untuk info lebih lengkapnya ikuti link di atas. Dukungan penulisan ulang bisa agak sulit untuk dipahami, tetapi ada beberapa contoh tentang stackoverflow yang dapat dipelajari.
sumber
?
untuk&
, sehingga mustahil untuk membedakan antara/page&foobar
vs/page?foobar
. Bagaimana cara menghentikan QSA untuk mengganti?
ke&
?Jika kondisi berikut ini benar, maka tulis ulang URL:
Jika nama file yang diminta bukan direktori,
dan jika nama file yang diminta bukan file biasa yang ada,
dan jika nama file yang diminta bukan tautan simbolis,
lalu tulis ulang URL dengan cara berikut:
Ambil seluruh nama file permintaan dan berikan sebagai nilai parameter kueri "url" ke index.php. Tambahkan string kueri apa pun dari URL asli sebagai parameter kueri lebih lanjut (QSA), dan hentikan pemrosesan file .htaccess (L) ini.
Dokumen Apache #flag_qsa
Contoh lain:
Dengan flag [QSA], permintaan untuk
akan dipetakan ke
sumber
Ini akan menangkap permintaan untuk file seperti
version
,,release
danREADME.md
, dll. Yang harus diperlakukan sebagai endpoint, jika didefinisikan (seperti dalam kasus / release), atau sebagai "tidak ditemukan".sumber