Pergunta

Eu sei que há muitas coisas positivas que a reescrita do mod realiza.Mas há algum negativo?Obviamente, se você tiver regras mal escritas, terá problemas.Mas e se você tiver um site de alto volume e usar mod-rewrite constantemente, isso terá um impacto significativo no desempenho?Fiz uma busca rápida por alguns benchmarks no Google e não encontrei muita coisa.

Foi útil?

Solução

Usei o mod_rewrite em sites que obtêm milhões/hits/mês sem problemas significativos de desempenho.Você precisa saber quais reescritas serão aplicadas primeiro, dependendo de suas regras.

Usar mod_rewrite é provavelmente mais rápido do que analisar o URL com seu idioma atual.

Se você está realmente preocupado com o desempenho, não use .htaccess arquivos, eles são lentos.Coloque todas as suas regras de reescrita na configuração do Apache, que só é lida uma vez na inicialização. .htaccess os arquivos são analisados ​​novamente em cada solicitação, junto com todo .htaccess arquivo nas pastas pai.

Outras dicas

Para repetir o que Ryan disse acima, governa em um .htaccess pode realmente prejudicar o tempo de carregamento em um site movimentado em comparação com as regras em seu arquivo de configuração.Inicialmente tentamos isso (cerca de 60 milhões de páginas/mês), mas não durou muito até que nossos servidores começaram a fumar :)

A desvantagem óbvia de ter as regras em sua configuração é que você precisa recarregar a configuração sempre que modificar suas regras.

O último sinalizador ("L") é útil para acelerar a execução de suas regras, uma vez que as regras acessadas com mais frequência estão no topo e são avaliadas primeiro.No entanto, isso pode tornar a manutenção muito mais complicada se você tiver um longo conjunto de regras - perdi algumas horas muito frustrantes uma manhã enquanto estava editando no meio da minha lista de regras e tinha uma no topo que estava prendendo mais do que pretendido!

Também tivemos dificuldade em encontrar benchmarks relevantes e acabamos elaborando nosso próprio conjunto interno de testes.Depois que nossas regras foram organizadas, ordenadas corretamente e colocadas em nossa configuração do Apache, não encontramos muito impacto negativo no desempenho.

Se você está preocupado com o desempenho do Apache, uma coisa a considerar se você tiver muitas regras de reescrita é usar o sinalizador "skip".É uma forma de pular a correspondência de regras.Assim, qualquer sobrecarga que teria sido gasta na correspondência é salva.

Porém, tenha cuidado, eu estava em um projeto que utilizava muito o sinalizador "skip" e isso tornava a manutenção dolorosa, pois depende da ordem em que as coisas são escritas no arquivo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top