2015-04-17 2 views
0

Для мобильного субдомена (m.domain) Я просто пытаюсь вытащить изображения из общей папки с изображениями основного домена (www.domain.com/images)Если mod_proxy недоступен, каков эффект использования флага P в перезаписи htaccess?

После немного возиться, я, видимо, получил код перезаписи htaccess для успешной работы, но я узнал, что мне не удалось использовать флаг P для перезаписи, и что у меня нет mod_proxy, включенного из-за совместного хостинга.

простого код в моем файле Htaccess m.domain.com:

RewriteRule ^(images/.*) http://www.domain.com/$1 [L] 

Какую пользу я не получаю, не используя флаг P? Какая разница?

ответ

1

Когда вы проксируете запрос, сам сервер выполняет внешний запрос и передает полученные данные. Если клиент запросит http://m.example.com/asdf, а сервер будет прокси до http://www.example.com/asdf, сервер сделает запрос-прокси на этот URL-адрес, а затем вернет эти данные для http://m.example.com/asdf клиенту. Для внешнего мира существует дублированный контент на http://m.example.com/asdf и http://www.example.com/asdf, и любой клиент, запрашивающий оба URL, будет кэшировать вещи дважды. Это не идеально.

С вашим текущим подходом вы делаете неявное временное перенаправление. Когда клиент запрашивает http://m.example.com/asdf, сервер отправляет ответ перенаправления, который говорит клиенту повторить попытку на http://www.example.com/asdf. Клиент снова пытается использовать этот URL-адрес и получает данные с сервера. Для внешнего мира ясно, что контент находится в одном месте, а при кешировании данных он будет кэшировать его только для http://www.example.com/asdf. Если вы сделаете перенаправление постоянным, в некоторых случаях он пропустит перенаправление и напрямую запросит http://www.example.com/asdf, уменьшив нагрузку на ваш сервер.

Если у вас нет веской причины прокси-запроса (например, поскольку сервер с данными доступен только локально), вы не должны использовать прокси-запрос. Если http://m.example.com/ и http://www.example.com размещены на одном сервере, и вы не заботитесь о размещении дублированного контента, тогда вы должны использовать внутреннюю переписку. Если вас беспокоит дублированный контент, вы используете внешнюю переадресацию, используя флаг [R].

+0

Итак, если я не использую ни флаг [P], ни флаг [R], а флаг [L] вместо этого, что это значит? Кроме того, я просто вынимаю изображения с сервера www, а не полные страницы или текстовые материалы. Я не хочу создавать повторяющийся контент. Эти _are_ как на одном физическом сервере. Я не могу использовать флаг [P] или mod_proxy, поэтому это не вариант ... Я просто хотел удостовериться, что не буду создавать плохие, непреднамеренные результаты, делая это таким образом. – ChefBoyRDang