Ao tentar resolver um problema no meu site, uma recomendação sobre o meu arquivo .htaccess que recebi foi
Antes de mais nada, verifique no servidor todos os diferentes módulos, se estiverem ativados e, uma vez removidos, remova o
<IfModule
...></IfModule>
blocos. Eles estão colocando uma pressão desnecessária no seu servidor.
Não sei onde devo procurar para ver se os módulos estão ativos - está no CMS? no arquivo httpd.conf? nos arquivos do meu servidor? devo fazer uma ligeira modificação no .htaccess como teste? Mas mais do que isso, a própria recomendação poderia não ser apropriada? Obrigado.
Aqui está o arquivo .htaccess para o qual a recomendação foi feita:
Options +FollowSymLinks -MultiViews
RewriteEngine on
AddHandler x-httpd-php .html .htm
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 1 seconds"
ExpiresByType text/html "access plus 1 seconds"
ExpiresByType image/gif "access plus 2592000 seconds"
ExpiresByType image/jpeg "access plus 2592000 seconds"
ExpiresByType image/png "access plus 2592000 seconds"
ExpiresByType text/css "access plus 2592000 seconds"
ExpiresByType text/javascript "access plus 216000 seconds"
ExpiresByType application/x-javascript "access plus 216000 seconds"
</ifModule>
<ifModule mod_headers.c>
<filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\\.(css)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>
<filesMatch "\\.(js)$">
Header set Cache-Control "max-age=216000, private"
</filesMatch>
<filesMatch "\\.(xml|txt)$">
Header set Cache-Control "max-age=216000, public, must-revalidate"
</filesMatch>
<filesMatch "\\.(html|htm|php)$">
Header set Cache-Control "max-age=1, private, must-revalidate"
</filesMatch>
</ifModule>
<ifModule mod_headers.c>
Header unset ETag
</ifModule>
FileETag None
<ifModule mod_headers.c>
Header unset Last-Modified
</ifModule>
RewriteCond %{HTTP_HOST} !^(www\.)?foo\.com$
RewriteRule .? http://foo.com%{REQUEST_URI} [R=301,L]
#BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
</IfModule>
# END WordPress
Respostas:
Se o PHP for executado como módulo apache, você poderá usar a
phpinfo()
função Procure a seção Apache (normalmenteapache2handler
) e procure a linha com "Loaded Modules":fonte
Supondo que você queira dizer módulos apache, você pode executar o abaixo para listar quais módulos você carregou:
fonte
-bash: apachectl: command not found
find / apachectl | grep apachectl
ModSecurity: Failed to open debug log file: /var/log/apache2/modsec_debug.log
entãocat: /var/log/apache2/modsec_debug.log: Permission denied
soluço :(Se você não tiver esses módulos carregados, parece que nada vai quebrar no seu site, mas não terá as melhores configurações de controle de cache. Portanto, deixe de fora os módulos if, pois você não pode carregá-los se eles não estiverem carregados. O site apache diz
http://httpd.apache.org/docs/2.0/mod/core.html#ifmodule
fonte
Sobre sua consulta: você precisa verificar se esses módulos estão ativados no servidor e, se estiverem, pode remover a condição if do htaccess:
por exemplo, se o módulo mod_expires.c estiver ativado, você poderá remover o
<IfModule mod_expires.c></IfModule>
e manterá apenas esta parte:então você não está mais verificando se esse módulo está ativado porque você já fez isso.
fonte
1) basta adicionar a
.htaccess
2) atualize seu site
3) se você estiver fora de jogo agora,
mod_expires
estiver ativo4) exclua
deny from YOUR.IP
deifModule mod_expires.c
fonte