Файл .htaccess переписать второе правило - PullRequest
0 голосов
/ 27 февраля 2019

Я хотел бы создать правило для PDF-файлов, например domain.com / folder / directory / filename.pdf будет доступно с domain.com / filename.pdf , поэтомуЯ создал это правило:

RewriteRule ^([a-zA-Z0-9_\.-]*).pdf$ /images/qualita/certificati/$1.pdf [NC,L]

Это работает.Теперь я хотел бы сделать то же самое с другим файлом, который находится в другой папке, поэтому я добавляю второе правило:

RewriteRule ^([a-zA-Z0-9_\.-]*).pdf$ /images/catalogo/$1.pdf [NC,L]

Это не работает.Это дает мне ошибку 404. И я думаю, это потому, что первое правило.Даже если я добавлю флаг [L], что я могу сделать, чтобы все файлы .pdf были доступны, например, domain.com / filename.pdf ?

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Попробуйте:

RewriteCond %{DOCUMENT_ROOT}/images/qualita/certificati%{REQUEST_URI}\.pdf -f
RewriteRule ^([a-zA-Z0-9_\.-]*).pdf$ /images/qualita/certificati/$1.pdf [NC,L]
RewriteCond %{DOCUMENT_ROOT}/images/catalogo%{REQUEST_URI}\.pdf -f
RewriteRule ^([a-zA-Z0-9_\.-]*).pdf$ /images/catalogo/$1.pdf [NC,L]

Эти правила сначала проверят, нацелен ли запрос на каталог /images/qualita/certificati/ или нет, а затем проверят другой каталог /images/catalogo/.

Если вам нужнопроверьте сначала /images/catalogo сначала сделайте третью и четвертую строки.

Имейте в виду, что , если в обоих каталогах один и тот же файл, приоритет будет отдан первому.

0 голосов
/ 27 февраля 2019

Может быть дважды переписать, как это (не проверено)

RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule ^([a-zA-Z0-9_\.-]*).pdf$ /images/qualita/certificati/$1.pdf

RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule ^\/images\/qualita\/certificati\/([a-zA-Z0-9_\.-]*)\.pdf$ /images/catalogo/$1.pdf
...