Мой .htaccess в настоящее время выглядит следующим образом:Не нуждаясь index.php из example.com/{lang}/index.php
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/+([^/]+)/\?lang=([^\s&]+) [NC]
RewriteRule^/%2/%1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-z]{2})/([^/]+)/?$ $2/?lang=$1 [L,QSA]
Это означает, что example.com/{lang}/some-page.php
действует как example.com/some-page.php?lang={lang}
Оставшийся вопрос: example.com/{lang}
делает не работает, если у него нет index.php
, например `example.com/{lang}/index.php
Как я могу заставить его работать, когда мы перейдем непосредственно к example.com/{lang}
?
Не имеют двухбуквенных файлов/каталогов, поэтому мы можем опустить. Однако, используя ваши правила, когда я перехожу на 'example.com/xx', я получаю 404 –
, я удалил чеки. Вы помещаете его в корневой файл .htaccess? – SuperDuperApps
Я добавил проверки, чтобы избежать цикла. – SuperDuperApps