.htaccess Règles de réécriture pour les sous-dossiers inconnus

Dec 18 2020

je suis confronté au problème suivant:

La structure de mes dossiers sur le serveur est: public_html / projects /

Vue arborescente: arborescence de la structure des dossiers

Dans le dossier public_html , il y a un fichier .htaccess .

Dans le dossier des projets , mes partenaires créeront de nombreux dossiers avec une page de destination à l'intérieur (disons juste un fichier index.php)

Les règles de réécriture que j'essaie d'appliquer sont une langue et des paramètres d'URL de devise .


Donc, par exemple cette URL: https://www.example.com/projects/whatever-project-name/index.php?lang=en¤cy=eur

doit être traduit en: https://www.example.com/projects/whatever-project-name/en/eur/

En outre, la variable de devise est facultative. (La variable de langue est une variable obligatoire)

Donc, les URL peuvent être quelque chose comme ça aussi: https://www.example.com/projects/whatever-project-name/en/


Je cherche et j'essaye (et je pleure) quelques jours maintenant afin de résoudre ce problème. La seule solution proche de la mienne est la suivante: RewriteRule pour un répertoire inconnu

mais je n'ai pas réussi à le faire fonctionner.

Ce que j'ai jusqu'à présent (mais cela ne fonctionne pas correctement) est:

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]

Réponses

2 RavinderSingh13 Dec 18 2020 at 01:13

En vous basant sur vos échantillons, pourriez-vous s'il vous plaît essayer de suivre. Veuillez vous assurer de vider le cache de votre navigateur avant de tester vos URL.

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]