я сталкиваюсь со следующей проблемой:
Моя структура папок на сервере: 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]
@GregVlachokostas, извините, была опечатка )
отсутствовало в 1-м правиле, не могли бы вы попробовать отредактированные один раз и дайте мне знать, как дела?
Спасибо за ваш быстрый ответ! Я только что попробовал ваше решение, но получаю страницу с внутренней ошибкой сервера.