Как скрыть реальные каталоги, используя mod_rewrite? - PullRequest
0 голосов
/ 14 сентября 2010

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

По сути, я хочу отобразить это так:

URL                     Path
webbfarbror.se/f/*      _files/webbfarbror.se/*
grapefrukt.com/f/*      _files/grapefrukt.com/*

Этот небольшой фрагмент прекрасно справляется со своей задачей, а RewriteCond позволяет мне включать и отключать его для каждого домена.

ReWriteCond %{HTTP_HOST} webbfarbror.se
ReWriteRule ^f/(.*)$ _files/%{HTTP_HOST}/$1 [L]

Однако, файл, скажем, http://grapefrukt.com/f/awesome.jpg также доступен по его «реальному» URL http://grapefrukt.com/_files/grapefrukt.com/awesome.jpg

Все мои попытки приводят к бесконечным перенаправлениям туда-сюда.

Как отключить доступ через последний URL?

1 Ответ

1 голос
/ 14 сентября 2010

Вы можете просмотреть исходный запрос, как он был отправлен на сервер, который доступен как %{THE_REQUEST}. Проверка префикса /_files/ указывает на то, что запрос относится к последнему типу, и вы можете затем перенаправить в соответствующий формат:

RewriteCond %{THE_REQUEST} ^[A-Z]+\s/_files/
RewriteRule ^_files/[^/]+/(.*)$ http://%{HTTP_HOST}/f/$1 [R=301,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...