Относительный путь не работает RewriteRule .htaccess
Я хочу добавить на сайт возможность выбирать язык, но чтобы файл index.php был тотже.
Итак, сайт на /index.php, по запросу /lang/en GET запрос передаёться, index.php грузиться. Но стили, картинки и тд, грузяться почему то по пути /lang/..., почему добавляеться lang не понимаю.
То есть сайт можно открыть по https://example.com/
Он также открывается по https://example.com/lang/gh (gh это любые два символа), и в GET передаётся переменная (успешно).
Но относительные пути почему-то открываються например вот так /lang/styles/styles.css, а должно быть /styles/styles.css
Мой .htaccess
RewriteEngine On
RewriteRule (.*)(lang)(/)(..)(.*) $1$5index.php?$2=$4 [L]
Есть идеи? (я в курсе, что можно указывать абсолютный путь. Но я хочу скрыть директорию от пользователя, поэтому этот вариант не подходит)
Ответы (1 шт):
В самое начало в корень добавил это:
Options +FollowSymLinks -MultiViews
RewriteEngine On
# чтобы редирект был только для стилей, картинок и тд.
RewriteCond %{REQUEST_URI} css [OR]
RewriteCond %{REQUEST_URI} styles [OR]
RewriteCond %{REQUEST_URI} js [OR]
RewriteCond %{REQUEST_URI} img
RewriteRule (.*)lang/(.*) $1$2 [L,R]
Теперь грузиться всё. Нужно ещё доработать схему, чтобы добавить ещё функции, но уже прогресс.