600 + режим переписывают правила, это нормально с apache? - PullRequest
3 голосов
/ 18 марта 2011

Мы создаем веб-сайт, который, будем надеяться, будет обслуживать 2-5 тысяч уникальных посетителей в день. Поскольку сайт ориентирован на арабских ораторов, мы настроили .htaccess файл для правил перезаписи, например:

RewriteRule ^عربية$ arabic.php [L]

Проблема в том, что у нас есть 600 правил перезаписи, подобных приведенным выше. Это нормально с apache? или это сделает мой сервер очень медленным? тег [L] помогает?

Ответы [ 3 ]

7 голосов
/ 18 марта 2011

Если у вас есть только статические ключевые слова, я бы предпочел использовать хеш-карту вместо отдельных правил.Поскольку сложность операции поиска для хэш-карты состоит в том, что O (1) противоположно O ( n ) для n правил.

Так что вы могли бы что-то сделатьнапример:

RewriteMap arabic-keywords dbm:/path/to/file/arabic-keywords.map

Исходная карта ключевых слов представляет собой простой текстовый файл в формате:

عربية arabic.php
الأغاني songs.php
الفنان artist.php

Затем используйте httxt2dbm, чтобы превратить обычный текстфайл в хеш-карту:

httxt2dbm -i arabic-keywords.txt -o arabic-keywords.map

И использование карты:

RewriteCond %{arabic-keywords:$0} .+
RewriteRule .+ %0 [L]

Поскольку карта перезаписи хеша возвращает пустую строку, если совпадений не найдено, условие будет толькобудет выполнено, если совпадение было найдено.Но обратите внимание, что RewriteMap нельзя использовать в файле .htaccess context .

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

Я думаю, что это слишком много для производительности и удобства обслуживания.

Я бы сделал одно правило перезаписи для пересылки всех связанных запросов в arabic.php, а затем обработал $ _SERVER ['REQUEST_URI'] с помощью php дляболее динамическая маршрутизация.

Это было бы более ремонтопригодно.

0 голосов
/ 18 марта 2011

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

Тег [L] немного помогает в этом исполнении. Особенно, если вы держите свои наиболее часто используемые правила в верхней части страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...