Al intentar resolver un problema en mi sitio web, una recomendación sobre mi archivo .htaccess que obtuve fue
En primer lugar, verifique en el servidor todos los módulos diferentes si están habilitados, y una vez que lo estén, quite el
<IfModule
...></IfModule>
bloques Están poniendo una tensión innecesaria en su servidor.
No sé dónde debo mirar para ver si los módulos están activos: ¿está en el CMS? en el archivo httpd.conf? en los archivos en mi servidor? ¿Debo hacer una ligera modificación en el .htaccess como prueba? Pero más que eso, ¿podría la propia recomendación no ser apropiada? Gracias.
Aquí está el archivo .htaccess para el que se ha hecho la recomendación:
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
Respuestas:
Si PHP se ejecuta como módulo apache, puede usar la
phpinfo()
función. Busque la sección Apache (generalmenteapache2handler
) y busque la fila con "Módulos cargados":fuente
Suponiendo que se refiere a módulos de apache, puede ejecutar lo siguiente para enumerar qué módulos ha cargado:
fuente
-bash: apachectl: command not found
sollozo :(find / apachectl | grep apachectl
ModSecurity: Failed to open debug log file: /var/log/apache2/modsec_debug.log
luegocat: /var/log/apache2/modsec_debug.log: Permission denied
sollozo :(Si no tiene esos módulos cargados, entonces no parece que nada se rompa en su sitio, simplemente no tendrá la mejor configuración de control de caché. Así que omita los ifmodules, ya que ni siquiera puede cargarlos si no están cargados. El sitio web de apache dice
http://httpd.apache.org/docs/2.0/mod/core.html#ifmodule
fuente
Acerca de su consulta: debe verificar si esos módulos están habilitados en el servidor, y si lo están, puede eliminar la condición if de htaccess:
por ejemplo, si el módulo mod_expires.c está habilitado, entonces puede eliminar el
<IfModule mod_expires.c></IfModule>
y mantendrá solo esta parte:así que ya no verificará si ese módulo está habilitado porque ya lo hizo.
fuente
1) solo agregue a
.htaccess
2) actualice su sitio web
3) si está fuera del juego ahora,
mod_expires
está activo4) eliminar
deny from YOUR.IP
deifModule mod_expires.c
fuente