Я настроил перенаправление для NginX следующим образом:
location / {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?permalink=$1 last;
}
он отлично работает для тысяч ссылок, но для некоторых это не так
Некоторые из ссылок, которые продолжают выдавать ошибку 404:
Для тысяч других ссылок profile / * он отлично работает. Я попытался получить доступ к вышеуказанным профилям через:
index.php?permalink=profile/jongz
И работает нормально. Поэтому я предполагаю, что должна быть некоторая неправильная конфигурация или что-то, что заставляет nginX выдавать ошибку 404 - файл не найден вместо перехода к rewrite
функция.
Содержат ли эти ссылки какие-то символы или комбинации символов, которые мешают nginX правильно переписать ссылку?
Следующее правило было проблемой:
location ~* .(js|jpg|jpeg|gif|png|css|tgz|gz|rar|bz2|doc|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|woff|woff2|svg)$ {
etag on;
if_modified_since exact;
add_header Pragma "public";
add_header Cache-Control "max-age=31536000, public";
}
Не уверен, почему не ставится точка в начале выражения. Кто-нибудь знает на это ответ?