Блок локации nginx отключает рендеринг файлов php - PullRequest
1 голос
/ 21 марта 2020

У меня есть этот location блок на моем веб-сайте. 1006 *

Как я могу исключить *. php файлы из этого выражения регулярного выражения? Что означает это регулярное выражение? Это даже хороший стиль - просто исключить *. php файлов в этом случае?

Если кто-то может уточнить, я был бы очень признателен.

Еще немного контекста: я пробую jitsi-meet, и я хотел бы добавить некоторые функции php на веб-сайте.

1 Ответ

1 голос
/ 21 марта 2020

Регулярное выражение ^/([^/?&:'"]+)$ соответствует всему, что начинается с / и содержит любой символ, кроме /, ?, &, :, ' и ".

Первый символ является значимым, поскольку он означает, что он будет соответствовать только URI, которые содержат один элемент пути (например, /foo и /index.php), но не будет соответствовать URI, которые содержат другой / (например, /foo/, /foo/bar и /foo/index.php).

Другие символы, вероятно, являются ошибкой, поскольку ? и & вряд ли встретит оператор location, так как Nginx использует нормализованный URI с удаленной строкой запроса.


Нет необходимости исключать .php из этого регулярного выражения.

URI, заканчивающиеся на .php обычно обрабатываются другим блоком местоположения регулярного выражения (например, location ~ \.php$).

Блоки местоположения регулярного выражения оцениваются по порядку, пока не будет найдено совпадение, поэтому необходимо убедиться, что блок location ~ \.php$ поместил над блоком местоположения регулярного выражения в вашем вопросе.

...