При попытке решить проблему на моем веб-сайте была дана рекомендация о файле .htaccess, который я получил.
Прежде всего, проверьте на сервере наличие всех различных модулей, включены ли они, и, как только они будут включены, удалите
<IfModule
...></IfModule>
блоки. Они создают ненужную нагрузку на ваш сервер.
Я не знаю, где искать, если модули активны - это в CMS? в файле httpd.conf? в файлах на моем сервере? я должен сделать небольшую модификацию в .htaccess в качестве теста? Но более того, может ли рекомендация self быть неуместной? Спасибо.
Вот файл .htaccess, для которого была сделана рекомендация:
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
Ответы:
Если PHP запускается как модуль apache, вы можете использовать эту
phpinfo()
функцию. Найдите раздел Apache (обычноapache2handler
) и найдите строку с «Loaded Modules»:источник
Предполагая, что вы имеете в виду модули Apache, вы можете запустить ниже, чтобы увидеть, какие модули вы загрузили:
источник
-bash: apachectl: command not found
рыдание :(find / apachectl | grep apachectl
ModSecurity: Failed to open debug log file: /var/log/apache2/modsec_debug.log
тогдаcat: /var/log/apache2/modsec_debug.log: Permission denied
Если эти модули не загружены, значит, на вашем сайте ничего не сломается, просто не будет лучших настроек управления кешем. Поэтому не используйте if-модули, так как вы даже не можете их загрузить, если они не загружены. Сайт Apache говорит
http://httpd.apache.org/docs/2.0/mod/core.html#ifmodule
источник
О вашем запросе: вам нужно проверить, включены ли эти модули на сервере, и если они есть, вы можете удалить условие if из htaccess:
Например, если модуль mod_expires.c включен, вы можете удалить,
<IfModule mod_expires.c></IfModule>
и вы сохраните только эту часть:так что вы больше не проверяете, включен ли этот модуль, потому что вы уже это сделали.
источник
1) просто добавить в
.htaccess
2) обновите свой сайт
3) если вы вне игры сейчас,
mod_expires
активен4) удалить
deny from YOUR.IP
изifModule mod_expires.c
источник