.htaccess Regras de reescrita para subpastas desconhecidas

Dec 18 2020

eu enfrento o seguinte problema:

Minha estrutura de pastas no servidor é: public_html / projects /

Visualização em árvore: visualização em árvore da estrutura da pasta

Na pasta public_html existe um arquivo .htaccess .

Dentro da pasta de projetos, meus parceiros criarão pastas numerus com uma página de destino dentro (digamos apenas um arquivo index.php)

As regras de reescrita que tento aplicar são os parâmetros de url de um idioma e uma moeda .


Então, por exemplo, este url: https://www.example.com/projects/whatever-project-name/index.php?lang=en¤cy=eur

tem que ser traduzido para: https://www.example.com/projects/whatever-project-name/en/eur/

Além disso, a variável de moeda é opcional. (A variável de idioma é uma variável obrigatória)

Portanto, os urls também podem ser assim: https://www.example.com/projects/whatever-project-name/en/


Estou procurando e tentando (e chorando) alguns dias para resolver este problema. A única solução próxima da minha é esta: RewriteRule para diretório desconhecido

mas não consegui fazer funcionar.

O que eu tenho até agora (mas não funciona direito) é:

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]

Respostas

2 RavinderSingh13 Dec 18 2020 at 01:13

Com base em seus exemplos mostrados, você poderia tentar seguir. Certifique-se de limpar o cache do navegador antes de testar seus URLs.

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]