Как использовать mod_Rewrite для проверки нескольких папок на статический файл

Что является правилами mod_Rewrite для проверки нескольких местоположений папки для данного файла. Например, если у меня есть структура папок:

public/
    css/
    library1/
        css/
    library2/
        css/

и я хочу запросы к /css/somefile.css сначала проверять public/css/ каталог, затем расположитесь каскадом к public/library1/css/ затем public/library2/css/, возврат 404, если актив не может быть найден ни в одном из каталогов.

Я думал вроде:

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond library1%{REQUEST_URI} -f
RewriteRule ^(.*)$ library1$1 [L]

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond library2%{REQUEST_URI} -f
RewriteRule ^(.*)$ library2$1 [L]

Но это, кажется, не работает - я не уверен, как проверить на существование файла на динамично сгенерированном пути.

6
задан DavidWinterbottom 1 February 2010 в 12:40
поделиться

3 ответа

Попробуйте эти правила:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/library1%{REQUEST_URI} -f
RewriteRule ^css/.+ library1%{REQUEST_URI} [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/library2%{REQUEST_URI} -f
RewriteRule ^css/.+ library2%{REQUEST_URI} [L]
6
ответ дан 16 December 2019 в 21:39
поделиться

Каковы ваши критерии для «лучших»?

  • маринованный огурчик может сделать большинство структур Python, глубоко вложенные слишком
  • sqlite dbs можно легко запросить (если вы знаете sql:)
  • скорость/память? не доверяйте эталонам, которые вы не подделали.

(Тонкая печать:
cPickle.dump (протокол = -1) сжимает, в одном случае 15M соленый/ 60M sqlite, но может сломаться.
Последовательности, которые встречаются много раз, например названия стран, могут занимать больше памяти, чем вы ожидаете; см. строительный интерн ().
)

-121--3090707-

RewriteMap Directive может помочь.

1
ответ дан 16 December 2019 в 21:39
поделиться

Возможно, переменные сервера не содержат то, что вы думаете. Попробуйте увеличить журнал для отладки, чтобы увидеть, что именно происходит.

1
ответ дан 16 December 2019 в 21:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: