Перенаправить все файлы вида с htaccess

Я очищаю свое веб-пространство и переместил все PDF-файлы из верхнего каталога в более низкий. Я хотел бы перенаправить так, чтобы старые URL-адреса все еще работали. То, что я до сих пор

RedirectMatch 301 (.*)\.pdf$ http://example.com/uploads/papers/$1.pdf

Проблема в том, что это также перенаправляет что-то вроде http://example.com/uploads/papers/paper.pdf на http://example.com/uploads/papers//uploads/papers/paper.pdf и так далее, что приводит к в бесконечных перенаправлениях.

Я пытался исключить косые черты из совпадений или слово "загрузки", но безуспешно.

1 ответ

Если PDF-файлы были ранее расположены в корне / только

RedirectMatch 301 ^/([^/]+)\.pdf$ http://mysite.com/uploads/papers/$1.pdf

Или внутри /uploads например; но какой-то один каталог

RedirectMatch 301 ^/uploads/([^/]+)\.pdf$ http://mysite.com/uploads/papers/$1.pdf

Если PDF-файлы могут быть расположены в любом месте, то вам нужно поставить условное правило как

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_URI} !^/uploads/papers/ [NC]
RewriteRule (.*)\.pdf$ /uploads/papers/$1.pdf [NC,L]

Приведенное выше условное правило предполагает, что у вас есть .htaccess находится в корне сети / каталог.

Другие вопросы по тегам