.htaccess RewriteCond -s (файл существует) - PullRequest
2 голосов
/ 04 марта 2011

Я вырываю волосы ...

Попытка заставить Drupal Boost работать в реальной среде. Он работает на моей машине для разработки, но возникают проблемы с тем, чтобы заставить его работать вживую.

Для проверки наличия статического html-файла в каталоге кэша используется правило перезаписи .htaccess, и, если оно есть, переписать с использованием этого файла.

Я удалил все, кроме правил переписывания ядра, так что это выглядит так:

RewriteCond %{DOCUMENT_ROOT}/cache/normal/%{SERVER_NAME}%{REQUEST_URI}_%{QUERY_STRING}\.html -s
RewriteRule .* cache/normal/%{SERVER_NAME}%{REQUEST_URI}_%{QUERY_STRING}\.html [L,T=text/html]

Это условие перезаписи, которое не работает (проверка того, что происходит в моей среде разработки по сравнению с живой). По сути, он проверяет, существует ли в файловой системе% {DOCUMENT_ROOT} / cache / normal /% {SERVER_NAME}% {REQUEST_URI} _% {QUERY_STRING} .html (с использованием флага -s).

Из апача:

"Обрабатывает TestString как имя пути и проверяет, существует ли он или нет, и представляет собой обычный файл с размером больше нуля."

У меня есть:

  1. Гарантируется, что файлы существуют
  2. Проверка прав доступа к файлам (даже если это не имеет значения, так как это проверка файлов Apache, которые создал Apache)
  3. Попытка изменения% {DOCUMENT_ROOT} для жестко закодированного пути, например /var/www/vhosts/mywebsite.com/httpdocs/cache/normal/www.mywebsite.com/

Кто-нибудь может предложить путь вперед или что-нибудь, чтобы попытаться решить эту проблему?

Я смотрел на форумах Drupal, но мне кажется, что это проблема .htaccess.

Кто-нибудь имел опыт использования -s?

1 Ответ

1 голос
/ 05 марта 2011

Можете ли вы получить фактический HTML-файл?

example.com / cache / normal / example.com / _. Html

...