Часть 1 заботится о делает example.com/fr
ведут себя как example.com?lang=fr
или example.com/fr/some-page.php
как example.com/some.page.php?lang=fr
и т.д..htaccess держать несколько GET PARAMS
Часть 2, который я в настоящее время работает над не работает хорошо еще, чтобы получить новый GET для других страниц, называемых page
, в этом случае, если в URL-адресе есть login
.
Задача: Кажется, что часть страницы загружается дважды, когда вы идете, например, example.com/login
или example.com/fr/login
.
Возможно, здесь нет необходимости в деталях, но, например, это говорит о Facebook Pixel Error: Duplicate Pixel ID:
и подобных ошибках для других тегов, которые я использую как Mixpanel, а затем мой JS просто перестает работать. Это все, что я могу сказать о проблемах, которые я вижу на моей стороне. Кажется, что лучший шанс найти вопиющие ошибки в правилах htaccess.
Что должно быть исправлено в правилах, чтобы конечная цель иметь параметр GET page
и lang
работать нормально?
RewriteEngine On
# Part 1
RewriteCond %{THE_REQUEST} \s/+[^?]*\?lang=([^\s&]+)\s [NC]
RewriteRule^/%2/%1? [R=301,L,NE]
RewriteCond %{REQUEST_URI} !^/js/
RewriteRule ^([a-z]{2})(?:/([^/]+))?$ $2?lang=$1 [NC,L,QSA]
# Part 2 (this is the part I am adding, which isn't fully working well yet)
# anything looking flagrantly wrong? If for example we are on `example.com/fr/login`,
# according to rules in this htaccess file we should have 2 GET params, `lang` and `page`.
RewriteCond %{REQUEST_URI} login
RewriteRule .* index.php?page=login
# adding more pages the same way
RewriteCond %{REQUEST_URI} signup
RewriteRule .* index.php?page=signup
Привет, проблема все еще существует, и это создало новую проблему - страниц, таких как 'example.com/fr/some -page.php' не работает. 'example.com/fr' (' example.com/XX') все еще работает. –
Хорошо по какой-то причине правило работает сейчас после повторного тестирования. Он не исправляет начальную проблему, но упрощает файл htaccess, удаляя одну строку. –
@DanP С вопросами по работе вы можете узнать больше. – starkeen