RewriteRule tidak menangkap referensi latar
Saya memiliki RewriteRule dalam file .htaccess tetapi saya tidak dapat membuatnya berfungsi dengan benar:
RewriteRule ^(?!(redirect-build)) redirect-build/index.php?url=$1
Referensi latar $ 1 tidak ditangkap dan Apache menulis ulang parameter URL tanpa nilai di dalamnya. Berikut ini potongan dari file log:
[Fri Mar 13 13:46:26.254929 2020] [rewrite:trace2] [pid 10612:tid 1344] mod_rewrite.c(477): [client 127.0.0.1:58838] 127.0.0.1 - - [domain/sid#1c4a1bda5b0][rid#1c4a2df8180/initial] [perdir D:/document-root/path/to/directory/] rewrite 'zalety-jablek' -> 'redirect-build/index.php?url='
[Fri Mar 13 13:46:26.254929 2020] [rewrite:trace3] [pid 10612:tid 1344] mod_rewrite.c(477): [client 127.0.0.1:58838] 127.0.0.1 - - [domain/sid#1c4a1bda5b0][rid#1c4a2df8180/initial] split uri=redirect-build/index.php?url= -> uri=redirect-build/index.php, args=url=
Apakah ada solusi untuk itu?
Jawaban
anubhava
Contoh:
example.com/some-path
harus diselesaikan menjadi:example.com/redirect-build/index.php?url=some-path
Dalam hal ini Anda perlu menyesuaikan RewriteRule
pola Anda untuk memungkinkannya mencocokkan & menangkap nilai seperti ini:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ redirect-build/index.php?url=$1 [L,QSA,NC]
([\w-]+)
adalah grup tangkap untuk mencocokkan dan menangkap 1+ karakter kata atau tanda hubungRewriteCond
digunakan untuk melewati file dan direktori yang ada dari penulisan ulang ini
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Taylor Sheridan Baru Menambahkan 1 Bintang 'Yellowstone' Favoritnya ke Pemeran 'Lawmen: Bass Reeves'