Как создать регулярное выражение в .htaccess, соответствующее 2 значениям, или пустое? - PullRequest
1 голос
/ 28 марта 2020

Мне нужно создать регулярное выражение, соответствующее только 2 значениям или пустое. Это будет что-то вроде этого:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(en|pt|{regex_empty_here})$ /index.html [L,QSA]

Это означает, что он может принимать только 3 варианта (и ничего больше): /pt, /en или /. Все они должны отображать index.html, как я написал выше.

Как мне этого добиться?

1 Ответ

0 голосов
/ 28 марта 2020
RewriteRule ^(en|pt|{regex_empty_here})$ /index.html [L,QSA]

Вы можете буквально иметь пустой чередующийся подшаблон:

RewriteRule ^(en|pt|)$ /index.html [L,QSA]

ОДНАКО, правило не будет успешным из-за предыдущего условия это проверяет, что запрос не отображается в каталог! Запрос на / является каталогом.

Но он также не должен работать для каталога root, поскольку mod_dir должен выдать внутренний подзапрос для индекса каталога - при условии, что он настроен для этого. Например:

DirectoryIndex index.html

(хотя это значение по умолчанию Apache, поэтому вам не обязательно указывать это явно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...