.htaccess Правила перезаписи для неизвестных подпапок
я столкнулся со следующей проблемой:
Моя структура папок на сервере: public_html / projects /
Представление в виде дерева: представление структуры папок в виде дерева
В папке public_html есть файл .htaccess .
Внутри папки проектов мои партнеры будут создавать многочисленные папки с целевой страницей внутри (скажем, просто файл index.php).
Правила перезаписи, которые я пытаюсь применить, - это параметры URL-адреса языка и валюты .
Так, например, этот URL: https://www.example.com/projects/whatever-project-name/index.php?lang=en¤cy=eur
должен быть переведен на: https://www.example.com/projects/whatever-project-name/en/eur/
Кроме того, переменная валюты не является обязательной. (Языковая переменная - обязательная переменная)
Таким образом, URL-адреса тоже могут быть примерно такими: https://www.example.com/projects/whatever-project-name/en/
Я ищу и пытаюсь (и плачу) вот уже пару дней, чтобы решить эту проблему. Единственное решение, которое близко к моему: RewriteRule для неизвестного каталога.
но мне не удалось заставить его работать.
Что у меня есть до сих пор (но он не работает должным образом):
RewriteEngine On
RewriteRule ^(.*/)?/([a-zA-Z0-9]{2,3})/([a-zA-Z0-9-]+)/?$ projects/$1index.php?lang=$2¤cy=$3
RewriteRule ^(.*/)?/([a-zA-Z0-9]{2,3})/?$ projects/$1index.php?lang=$2[L]
Ответы
Основываясь на показанных вами образцах, не могли бы вы попробовать следующее. Перед тестированием URL-адресов убедитесь, что вы очистили кеш браузера.
RewriteEngine ON
##With currency variable in URI.
RewriteCond %{REQUEST_URI} ^/projects/([\w-]+)/en/([\w-]+)/?$ [NC] RewriteRule ^(.*)$ projects/%1/index.php?lang=en¤cy=%2 [L]
##Without currency variable in URI.
RewriteCond %{REQUEST_URI} ^/projects/([\w-]+)/en/?$ [NC] RewriteRule ^(.*)$ projects/%1/index.php?lang=en [L]