.htaccess Tulis ulang aturan untuk subfolder yang tidak diketahui

Dec 18 2020

saya menghadapi masalah berikut:

Struktur folder saya di server adalah: public_html / projects /

Tampilan hierarki: tampilan hierarki struktur folder

Di folder public_html ada file .htaccess .

Di dalam folder proyek, mitra saya akan membuat folder numerus dengan halaman arahan di dalamnya (katakanlah hanya file index.php)

Aturan penulisan ulang yang saya coba terapkan adalah bahasa dan parameter url mata uang .


Jadi, misalnya url ini: https://www.example.com/projects/whatever-project-name/index.php?lang=en¤cy=eur

harus diterjemahkan ke: https://www.example.com/projects/whatever-project-name/en/eur/

Selain itu, variabel mata uang bersifat opsional. (Variabel bahasa adalah variabel wajib)

Jadi urlnya mungkin seperti ini juga: https://www.example.com/projects/whatever-project-name/en/


Saya mencari dan mencoba (dan menangis) beberapa hari sekarang untuk memecahkan masalah ini. Satu-satunya solusi yang dekat dengan saya adalah ini: RewriteRule untuk direktori yang tidak diketahui

tetapi saya tidak berhasil membuatnya berhasil.

Apa yang saya miliki sampai sekarang (tetapi tidak berfungsi dengan baik) adalah:

RewriteEngine On
RewriteRule ^(.*/)?/([a-zA-Z0-9]{2,3})/([a-zA-Z0-9-]+)/?$ projects/$1index.php?lang=$2&currency=$3
RewriteRule ^(.*/)?/([a-zA-Z0-9]{2,3})/?$ projects/$1index.php?lang=$2[L]

Jawaban

2 RavinderSingh13 Dec 18 2020 at 01:13

Berdasarkan contoh yang Anda tunjukkan, dapatkah Anda mencoba mengikuti. Harap pastikan Anda mengosongkan cache browser sebelum menguji URL Anda.

RewriteEngine ON
##With currency variable in URI.
RewriteCond %{REQUEST_URI} ^/projects/([\w-]+)/en/([\w-]+)/?$ [NC] RewriteRule ^(.*)$ projects/%1/index.php?lang=en&currency=%2 [L]

##Without currency variable in URI.
RewriteCond %{REQUEST_URI} ^/projects/([\w-]+)/en/?$ [NC] RewriteRule ^(.*)$ projects/%1/index.php?lang=en [L]