Перезапись Nginx: как удалить все после расширения файла - PullRequest
0 голосов
/ 30 мая 2019

На моем сайте много неправильных запросов изображений и файлов ... но с именами, близкими к реальному имени. в основном, если у меня есть файл с именем example.gif, есть вызов example.gifzerzer. Я хочу переписать, чтобы сохранить имя и расширение, но ничего после него.

Я создал файл карты с перезаписью (работает, например, переписывание tmp.php в index.php ниже, за исключением правила удаления всего после расширения).

Вот что я сделал до сих пор:

/(.+\.(bmp|gif|ico|jpeg|jpg|png|svg)).+ /$1;

это не работает ни

/(.+\.(bmp|gif|ico|jpeg|jpg|png|svg)).+? /$1;

моя карта:

map $request_uri $redirect_uri {
  default "";
  /(.+\.(bmp|gif|ico|jpeg|jpg|png|svg)).+ /$1;
  /tmp.php /index.php;
}

Я был под Apache до перехода на Nginx, и это работало:

RewriteRule ^([a-z0-9\-/_]*\.(bmp|gif|ico|jpeg|jpg|png|svg)).+ /$1 [R=301,L]

1 Ответ

0 голосов
/ 31 мая 2019

Я сделал это переписать, что работает, когда положить в разделе сервера, но тогда он не входит в карту.

location ~ (.+\.(bmp|gif|ico|jpeg|jpg|png|svg)).+$ {
    return 301 /$1;
}

если у кого-то есть идея, почему, или можете подтвердить, что я делаю это правильно?

...