Перенаправить все файлы вида с 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
находится в корне сети /
каталог.