htaccess для WordPress. Правильные настройки файла htaccess
Если вы читали мою предыдущую статью о том, как создать файл htaccess для сайта или, может, вы знаете достаточно информации об этом файле и готовы приступить к практической части, тогда переходим к этой части статьи, а если вы не в курсе, о чем это я пишу, рекомендую почитать вступительную часть «Как создать файл htaccess и что это такое?».
Теперь, после краткого вступления, можно перейти к практической части. Итак, открываем файл htaccess, который находится в корне вашего сайта на хостинге или который вы только что создали, и приступаем к настройкам.
Настройки файла htaccess для WordPress.
Стандартный htaccess для Wordpress.
Вот так выглядит стандартный код htacces для wordpress.
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^robots.txt$ - [L] RewriteRule ^sitemap.xml$ - [L] RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress
Но я вам рекомендую его расширить. Смотрите предлагаемое.
Безопасность WordPress и защита.
○ Закрыть доступ к просмотру всех файлов.
Чтобы запретить возможность открыть файл напрямую, через строку браузера, набрав прямой адрес файла, закройте доступ ко всем файлам с помощью htaccess.
deny from all
○ Блокировка по IP.
Если вы хотите закрыть доступ пользователя к сайту, например, за нарушение правил и т. д., вы можете заблокировать пользователя по IP.
Для добавления нового IP по причине блокировки продублируйте строку deny.
xx.xxx.xxx.xxx — вместо этого вставляйте IP пользователя для блокировки
x2.xx2.xx2.xx2 — вместо этого вставляйте второй IP пользователя для блокировки, и так до бесконечности.
<Limit GET POST> order allow,deny deny from xx.xxx.xxx.xxx deny from x2.xx2.xx2.xx2 allow from all </Limit>
○ Защита изображения на сайте.
Представьте себе такую ситуацию: какой-нибудь сайт размещает у себя изображение, которое находится на вашем ресурсе. Таким образом, ваш сайт попадет под нагрузку, так как картинки будут загружаться с вашего сайта.
Чтобы этого избежать, пропишете в файле htaccess следующее:
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^https://(www\.)?ваш-сайт.com/.*$ [NC] RewriteRule\.(png|gif|jpg|jpeg)$ https://www.ваш-сайт.com/stopimg.gif [R,L]
Если кто-то решит установить картинку, хранящуюся у вас на сайте, то увидит вместо ожидаемого результата картинку с предупреждением stopimg.gif
○ Защита от Спама.
Зачастую многие спам-боты обращаются напрямую к файлу, который обрабатывает комментарии пришедшие с сайта, этот файл называется wp-comments-post.php. Можно выловить спам-бота от живого пользователя через обращение к файлу wp-comments-post.php на наличие REFERER. При добавлении комментариев, у пользователя он есть, а вот у спам-бота его нет. Но этот метод не является 100% защитой от Спама, воспользуйтесь дополнительно плагином.
Не забудьте поменять «ваш домен.ru» на ваш (5-тая строка ).
# защита комментария от Спам-бота RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post\.php* RewriteCond %{HTTP_REFERER} !.*ваш домен.ru.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^https://%{REMOTE_ADDR}/$ [R=301,L]
○ Запретить доступ к папке wp-content и wp-includes.
Все пользователи WordPress знают, что в папке «wp-content» хранятся все плагины и темы, картинки и многое др. Рекомендую защитить папку «wp-content» от нехороших людей (редисок).
Создать новый файл htaccess в папке «wp-content» на хостинге с таким кодом (эти же действия сделайте для папки «wp-includes»):
Order deny,allow Deny from all <Files ~ ".(xml|css|jpe?g|png|gif|js)$"> Allow from all </Files>
○ Запрет доступа к файлу wp-config.php
В WordPress файл «wp-config.php» содержит всю важную информацию, например, название и пароль к базе данных. Запретим доступ через файл htaccess.
# защита wp-config.php <files wp-config.php> order allow,deny deny from all </files>
○ Запрещаем доступ к определенному файлу.
Вы можете защитить файлы плагина css и js.
<Files ~ "\.(js|css)$"> order allow,deny allow from all </Files>
○ Запрещаем просмотр нежелательным User-Agent.
Вы можете запретить просмотр сайта некоторым программам, сканирующим сайтам, старые браузерам от которых вы полностью отказались.
SetEnvIfNoCase user-Agent ^FrontPage [NC,OR] SetEnvIfNoCase user-Agent ^Java.* [NC,OR] SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR] SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR] Order Allow,Deny Allow from all Deny from env=bad_bot
○ Ограничение доступа к админ-панеле WordPress.
Вы можете разрешить доступ к админ-панеле только вашему IP адресу. Но этот метод подходит, если у вас постоянный IP адрес.
xx.xxx.xxx.xxx — это ваш IP адрес.
AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "Example Access Control" AuthType Basic <LIMIT GET> order allow, deny deny from all allow from xx.xxx.xxx.xxx </LIMIT>
○ Защита htaccess.
Мы защитили файлы, папки от посторонних лиц, но не нужно забывать, что сам файл htaccess тоже нуждается в защите. Согласен, немного смешно звучит.
Итак, защитим все файлы, которые начинаются с «hta» от просмотра нежелательными и любопытными лицами.
<Files ~ "^.*\.([Hh][Tt][Aa])"> order allow,deny deny from all satisfy all </Files>
Редиректы (перенаправления).
○ Самый простой редирект на новый сайт и страницу.
Если вам нужно автоматически перенаправить пользователей на другой сайт или страницу, укажите в файл htaccess вот такой код.
перенаправление на страницу сайта.
Redirect 301 / https://ваш сайт.ru/страница.htm
перенаправление на новый адрес сайта.
Redirect 301 / https://ваш сайт.ru/
Внимание: «/» — слеш в конце обязательно.
Пример неправильной записи:
https://ваш сайт.ru
Пример правильной записи:
https://ваш сайт.ru/страница.htm
https://ваш сайт.ru/
Также можно перенаправить со страницы на страницу, при этом сохранит PR старой страницы.
Redirect 301 /путь/старая-страница.htm https://ваш сайт.ru/новая-страница.htm
○ 301 редирект для слияния страниц с www и без (склеить домен).
Чтобы поисковики один и тот же сайт не считали дублированным, домен нужно склеить. Если выразится более ясным языком, то сайт должен быть доступен только по одному адресу, т.е. либо с www, либо без www.
главным доменом будет с www
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^ваш-домен\.ru$ [NC] RewriteRule ^(.*)$ https://www.ваш-домен.ru/$1 [R=301,L]
главным доменом будет без www
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.ваш-домен\.ru$ [NC] RewriteRule ^(.*)$ https://ваш-домен.ru/$1 [R=301,L]
Изменяем страницы ошибок.
Рекомендую сделать личные страницы ошибок, где будет краткое разъяснение причины ошибки. В таком случае вы не потеряете клиентов при возникновении ошибки, так как пользователь будет перенаправлен на специальную подготовленую страницу.
ErrorDocument 401 /401.html ErrorDocument 403 /403.html ErrorDocument 404 /404.html ErrorDocument 500 /500.html
401.html, 403.html, 404.html, 500.html — это подготовленые страницы ошибок.
Ускорение сайта через файл htaccess для WordPress.
○ Включаем кэширование браузера клиента.
Файлы сайта будут записываться в кэш браузера пользователя и при повторном вызове будут загружаться оттуда, это ускорит скорость загрузки сайта и уменьшит нагрузку на хостинг.
Header append Cache-Control "public" FileETag MTime Size ExpiresActive On ExpiresDefault "access plus 0 minutes" ExpiresByType image/ico "access plus 1 years" ExpiresByType text/css "access plus 1 years" ExpiresByType text/javascript "access plus 1 years" ExpiresByType image/gif "access plus 1 years" ExpiresByType image/jpg "access plus 1 years" ExpiresByType image/jpeg "access plus 1 years" ExpiresByType image/bmp "access plus 1 years" ExpiresByType image/png "access plus 1 years"
Важно: обратите внимание на image/, возможно в вашем случае папку с картинками нужно поменять.
Кодировка сайта.
○ Кодировка по умолчанию.
Чтобы избежать проблемы с кодировкой, можно указать принудительную кодировку — UTF8
AddDefaultCharset UTF-8
Вот и все!!! Не игнорируйте темой «htaccess для WordPress«, так как htaccess важен для защиты блога.
С Уважением Webmasterok2009
Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓
Последние новости категории:
Похожие статьи
Популярные статьи:
Оригинальный файл .htaccess для CMS Joomla
Исходный код
Содержимое стандартного файла .htaccess для CMS Joomla 2.5 – 3. ### @package Joomla
# @copyright Copyright (C) 2005 — 2012 Open Source Matters. All rights reserved.
# @license GNU General Public License version 2 or later; see LICENSE.txt
##
##
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE!
#
# The line just below this section: ‘Options +FollowSymLinks’ may cause problems
# with some server configurations. It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file. If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url’s. If they work,
# it has been set by your server administrator and you do not need it set here.
##
## Can be commented out if causes errors, see notes above.
## Mod_rewrite in use.
RewriteEngine On
## Begin — Rewrite rules to block out some common exploits.
# If you experience problems on your site block out the operations listed below
# This attempts to block the most common type of exploit `attempts` to Joomla!
#
# Block out any script trying to base64_encode data within the URL.
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL.
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL.
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL.
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
#
## End — Rewrite rules to block out some common exploits.
## Begin — Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
## End — Custom redirects
##
# Uncomment following line if your webserver’s URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root).
##
# RewriteBase /
## Begin — Joomla! core SEF Section.
#
RewriteRule .* — [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the request is for something within the component folder,
# or for the site root, or for an extensionless URL, or the
# requested URL ends with one of the listed extensions
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
# and the requested path and file doesn’t directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn’t directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
## End — Joomla! core SEF Section.
Содержимое стандартного файла .htaccess для CMS Joomla 1.5.
### @version $Id: htaccess.txt 21064 2011-04-03 22:12:19Z dextercowley $
# @package Joomla
# @copyright Copyright (C) 2005 — 2010 Open Source Matters. All rights reserved.
# @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
# Joomla! is Free Software
##
#####################################################
# READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE
#
# The line just below this section: ‘Options +FollowSymLinks’ may cause problems
# with some server configurations. It is required for use of mod_rewrite, but may already
# be set by your server administrator in a way that dissallows changing it in
# your .htaccess file. If using it causes your server to error out, comment it out (add # to
# beginning of line), reload your site in your browser and test your sef url’s. If they work,
# it has been set by your server administrator and you do not need it set here.
#
#####################################################
## Can be commented out if causes errors, see notes above.
Options +FollowSymLinks
#
# mod_rewrite in use
RewriteEngine On
########## Begin — Rewrite rules to block out some common exploits
## If you experience problems on your site block out the operations listed below
## This attempts to block the most common type of exploit `attempts` to Joomla!
#
## Deny access to extension xml files (uncomment out to activate)
#<Files ~ «\.xml$»>
#Order allow,deny
#Deny from all
#Satisfy all
#</Files>
## End of deny access to extension xml files
# Block out any script trying to set a mosConfig value through the URL
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
# Block out any script trying to base64_encode data within the URL
RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage
RewriteRule .* index.php [F]
#
########## End — Rewrite rules to block out some common exploits
########## Begin — Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
########## End — Custom redirects
# Uncomment following line if your webserver’s URL
# is not directly related to physical file paths.
# Update Your Joomla! Directory (just / for root)
# RewriteBase /
########## Begin — Joomla! core SEF Section
#
RewriteRule .* — [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the request is for root, or for an extensionless URL, or the
# requested URL ends with one of the listed extensions
RewriteCond %{REQUEST_URI} (/[^.]*|\.(php|html?|feed|pdf|raw))$ [NC]
# and the requested path and file doesn’t directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn’t directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#
########## End — Joomla! core SEF Section
Файл .htaccess по-умолчанию для WordPress — Технический блог
26 августа 2018 / WordPressЭта статья будет полезна тем кто утратил оригинальный файл .htaccess от WordPress сайта. Он (файл) необходим если вы используете веб-сервер Apache.
В повседневной жизни для своих блогов на хостинге я использую связку веб-сервера NGINX и интерпретатор PHP в режиме php-fpm. И со временем «зачистил» код сайта от всех ненужных на мой взгляд файлов, в том числе я удалил .htaccess.
При проведении тестирования нового хостинга, где использовалась связка Apache+Nginx, я с удивлением обнаружил, что мой тестовый блог на WordPress не работает и виной тому оказался отсутствующий файл .htaccess в корне сайта.
Стандартный файл .htaccess для WordPress
Минимально необходимый для работы сайта на WordPress файл .htaccess должен содержать следующие строки:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
Данный код был успешно протестирован на WordPress версии 4.9.8
Для чего нужен файл .htaccess
Файл .htaccess — это файл дополнительной конфигурации, в котором находятся инструкции для веб-сервера Apache. Он не затрагивает основной файл конфигурации веб-сервера и его действие распространяется только на каталог, в котором он располагается, и на его дочерние каталоги.
Файл .htaccess должен находиться в корне вашего сайта, WordPress его использует, как минимум, для обработки постоянных ссылок.
Переадресация на HTTPS версию сайта
Кроме описанных инструкций в файле .htaccess могут быть использованы другие настройки сайта, например автоматическая переадресация на использования протокола https:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
Размещать эти строки следует в начале файла выше инструкций для WordPress.
Что еще может файл .htaccess
С другими примерами использования файла .htaccess вы можете ознакомиться в моих статьях:
Благодарности
При написании статьи были использованы следующие источники:
- https://codex.wordpress.org/htaccess
Стандартный htaccess для OpenCart | IT notes
Не впервые сталкиваюсь с тем, что движок сам не генерирует файл .htaccess при включении ЧПУ(Seo-url).
В дистрибутиве этот файл также может отсутствовать.
По этой причине размещаю его у себя на сайте.
# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.
# 2. In your opencart directory rename htaccess.txt to .htaccess.
# For any support issues please visit: http://www.opencart.com
Options +FollowSymlinks
# Prevent Directoy listing
Options -Indexes
# Prevent Direct Access to files
<FilesMatch «(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))»>
Require all denied
## For apache 2.2 and older, replace «Require all denied» with these two lines :
# Order deny,allow
# Deny from all
</FilesMatch>
# SEO URL Settings
RewriteEngine On
# If your opencart installation does not run on the main web folder make sure you folder it does run in ie. / becomes /shop/
RewriteBase /
RewriteRule ^sitemap.xml$ index.php?route=extension/feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=extension/feed/google_base [L]
RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
### Additional Settings that may need to be enabled for some servers
### Uncomment the commands by removing the # sign in front of it.
### If you get an «Internal Server Error 500» after enabling any of the following settings, restore the # as this means your host doesn’t allow that.
# 1. If your cart only allows you to add one item at a time, it is possible register_globals is on. This may work to disable it:
# php_flag register_globals off
# 2. If your cart has magic quotes enabled, This may work to disable it:
# php_flag magic_quotes_gpc Off
# 3. Set max upload file size. Most hosts will limit this and not allow it to be overridden but you can try
# php_value upload_max_filesize 999M
# 4. set max post size. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value post_max_size 999M
# 5. set max time script can take. uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_execution_time 200
# 6. set max time for input to be recieved. Uncomment this line if you have a lot of product options or are getting errors where forms are not saving all fields
# php_value max_input_time 200
# 7. disable open_basedir limitations
# php_admin_value open_basedir none
Похожее
Правильный htaccess для WordPress
Доброго времени суток всем читателям моего блога! Недавно пытался сделать 301 редирект на своем автомобильном сайте, который попал под АГС, в связи с изменением всех ссылок на сайте и наткнулся на создание оптимального .htaccess файла для WordPress сайтов, который будет редиректить все технические страницы, что бы не плодить дубли страниц в поисковиках.
Выдержка из википедии, дабы не возникало ненужных вопросов:
.htaccess (от. англ. hypertext access) — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов. Позволяет задавать большое количество дополнительных параметров и разрешений для работы веб-сервера в отдельных каталогах (папках), таких как управляемый доступ к каталогам, переназначение типов файлов и т.д., без изменения главного конфигурационного файла.
Код стандартного файла htaccess для WordPress
И так, для начало приведу код стандартного файла .htaccess для WordPress:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ — [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ — [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
# END WordPress |
В данном файле по факту нет ничего примечательного и как обычно, касательно CMS WordPress, его нужно дописывать, дабы оптимизировать наш сайт.
Правильная настройка файла htaccess для WordPress
Вот код улучшенного файла htaccess для WordPress, в принципе можно еще много чего в него нагородить, но это основа, которую в обязательном порядке нужно поставить вместо стандартной:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# BEGIN WordPress <IfModule mod_rewrite.c> Options +FollowSymLinks -Indexes RewriteEngine On RewriteBase / RewriteRule ^index\.php$ — [L] RewriteRule (.+)/feed /$1 [R=301,L] RewriteRule (.+)/attachment /$1 [R=301,L] RewriteRule (.+)/comment-page /$1 [R=301,L] RewriteRule (.+)/comments /$1 [R=301,L] RewriteRule (.+)/trackback /$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> <Files wp-config.php> # Запрещаем всем доступ к файлу wp-config.php order allow,deny deny from all </Files> <Files .htaccess> order allow,deny deny from all </Files>
# END WordPress |
Ну, а теперь разберем все части кода, что мы добавили в стандартный вариант файла.
Эта часть кода отвечает за 301 редирект со страниц дублей, дабы не распылять вес и не создавать себе проблем в виде соплей в google:
RewriteRule (.+)/feed /$1 [R=301,L] RewriteRule (.+)/attachment /$1 [R=301,L] RewriteRule (.+)/comment-page /$1 [R=301,L] RewriteRule (.+)/comments /$1 [R=301,L] RewriteRule (.+)/trackback /$1 [R=301,L]
RewriteRule (.+)/feed /$1 [R=301,L] RewriteRule (.+)/attachment /$1 [R=301,L] RewriteRule (.+)/comment-page /$1 [R=301,L] RewriteRule (.+)/comments /$1 [R=301,L] RewriteRule (.+)/trackback /$1 [R=301,L] |
Данная часть отвечает за то, что бы закрыть пользователям листинг файлов и папок на сервере:
Options +FollowSymLinks -Indexes
Options +FollowSymLinks -Indexes |
Защита файла wp-config.php от несанкционированного доступа, что бы не утащили данные от нашей базы данных:
<Files wp-config.php> # Запрещаем всем доступ к файлу wp-config.php order allow,deny deny from all </Files>
<Files wp-config.php> # Запрещаем всем доступ к файлу wp-config.php order allow,deny deny from all </Files> |
Эта часть кода отвечает за защиту самого файла htaccess, как уже говорилось выше от несанкционированного доступа:
<Files .htaccess> order allow,deny deny from all </Files>
<Files .htaccess> order allow,deny deny from all </Files> |
Вот в общем и все, что я сегодня хотел рассказать и показать. Короче, мира, добра, любви, бобла, трафа и подписывайтесь на обновления блога!
Теги: пример правильного файла htaccess для вордпресс |
Подпишитесь и получайте новые статьи мгновенно на электронную почту
Оригинальный файл .htaccess для CMS Drupal
Содержимое стандартного файла .htaccess для CMS Drupal 7.
## Apache/PHP/Drupal settings:
#
# Protect files and directories from prying eyes.
<FilesMatch «\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$»>
Order allow,deny
</FilesMatch>
# Don’t show directory listings for URLs which map to a directory.
Options -Indexes
# Follow symbolic links in this directory.
Options +FollowSymLinks
# Make Drupal handle any 404 errors.
ErrorDocument 404 /index.php
# Set the default handler.
DirectoryIndex index.php index.html index.htm
# Override PHP settings that cannot be changed at runtime. See
# sites/default/default.settings.php and drupal_environment_initialize() in
# includes/bootstrap.inc for settings that can be changed at runtime.
# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
php_flag magic_quotes_gpc off
php_flag magic_quotes_sybase off
php_flag register_globals off
php_flag session.auto_start off
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_flag mbstring.encoding_translation off
</IfModule>
# Requires mod_expires to be enabled.
<IfModule mod_expires.c>
# Enable expirations.
ExpiresActive On
# Cache all files for 2 weeks after access (A).
ExpiresDefault A1209600
<FilesMatch \.php$>
# Do not allow PHP scripts to be cached unless they explicitly send cache
# headers themselves. Otherwise all scripts would have to overwrite the
# headers set by mod_expires if they want another caching behavior. This may
# fail if an error occurs early in the bootstrap process, and it may cause
# problems if a non-Drupal PHP file is installed in a subdirectory.
ExpiresActive Off
</FilesMatch>
</IfModule>
# Various rewrite rules.
<IfModule mod_rewrite.c>
RewriteEngine on
# Block access to «hidden» directories whose names begin with a period. This
# includes directories used by version control systems such as Subversion or
# Git to store control files. Files whose names begin with a period, as well
# as the control files used by CVS, are protected by the FilesMatch directive
# above.
#
# NOTE: This only works when mod_rewrite is loaded. Without mod_rewrite, it is
# not possible to block access to entire directories from .htaccess, because
# <DirectoryMatch> is not allowed here.
#
# If you do not have mod_rewrite installed, you should remove these
# directories from your webroot or otherwise protect them from being
# downloaded.
RewriteRule «(^|/)\.» — [F]
# If your site can be accessed both with and without the ‘www.’ prefix, you
# can use one of the following settings to redirect users to your preferred
# URL, either WITH or WITHOUT the ‘www.’ prefix. Choose ONLY one option:
#
# To redirect all users to access the site WITH the ‘www.’ prefix,
# (http://example.com/… will be redirected to http://www.example.com/…)
# uncomment the following:
# RewriteCond %{HTTP_HOST} !^www\. [NC]
# RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
#
# To redirect all users to access the site WITHOUT the ‘www.’ prefix,
# (http://www.example.com/… will be redirected to http://example.com/…)
# uncomment the following:
# RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
# RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301]
# Modify the RewriteBase if you are using Drupal in a subdirectory or in a
# VirtualDocumentRoot and the rewrite rules are not working properly.
# For example if your site is at http://example.com/drupal uncomment and
# modify the following line:
# RewriteBase /drupal
#
# If your site is running in a VirtualDocumentRoot at http://example.com/,
# uncomment the following line:
# RewriteBase /
# Pass all requests not referring directly to files in the filesystem to
# index.php. Clean URLs are handled in drupal_environment_initialize().
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]
# Rules to correctly serve gzip compressed CSS and JS files.
# Requires both mod_rewrite and mod_headers to be enabled.
<IfModule mod_headers.c>
# Serve gzip compressed CSS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.css $1\.css\.gz [QSA]
# Serve gzip compressed JS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule ^(.*)\.js $1\.js\.gz [QSA]
# Serve correct content types, and prevent mod_deflate double gzip.
RewriteRule \.css\.gz$ — [T=text/css,E=no-gzip:1]
RewriteRule \.js\.gz$ — [T=text/javascript,E=no-gzip:1]
<FilesMatch «(\.js\.gz|\.css\.gz)$»>
# Serve correct encoding type.
Header set Content-Encoding gzip
# Force proxies to cache gzipped & non-gzipped css/js files separately.
Header append Vary Accept-Encoding
</FilesMatch>
</IfModule>
</IfModule>
Содержимое стандартного файла .htaccess для CMS Drupal 6.
## Apache/PHP/Drupal settings:
#
# Protect files and directories from prying eyes.
<FilesMatch «\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$»>
Order allow,deny
</FilesMatch>
# Don’t show directory listings for URLs which map to a directory.
Options -Indexes
# Follow symbolic links in this directory.
Options +FollowSymLinks
# Make Drupal handle any 404 errors.
ErrorDocument 404 /index.php
# Force simple error message for requests for non-existent favicon.ico.
<Files favicon.ico>
# There is no end quote below, for compatibility with Apache 1.3.
ErrorDocument 404 «The requested file favicon.ico was not found.
</Files>
# Set the default handler.
DirectoryIndex index.php
# Override PHP settings. More in sites/default/settings.php
# but the following cannot be changed at runtime.
# PHP 4, Apache 1.
<IfModule mod_php4.c>
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_value mbstring.encoding_translation 0
</IfModule>
# PHP 4, Apache 2.
<IfModule sapi_apache2.c>
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_value mbstring.encoding_translation 0
</IfModule>
# PHP 5, Apache 1 and 2.
<IfModule mod_php5.c>
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_value mbstring.encoding_translation 0
</IfModule>
# Requires mod_expires to be enabled.
<IfModule mod_expires.c>
# Enable expirations.
ExpiresActive On
# Cache all files for 2 weeks after access (A).
ExpiresDefault A1209600
<FilesMatch \.php$>
# Do not allow PHP scripts to be cached unless they explicitly send cache
# headers themselves. Otherwise all scripts would have to overwrite the
# headers set by mod_expires if they want another caching behavior. This may
# fail if an error occurs early in the bootstrap process, and it may cause
# problems if a non-Drupal PHP file is installed in a subdirectory.
ExpiresActive Off
</FilesMatch>
</IfModule>
# Various rewrite rules.
<IfModule mod_rewrite.c>
RewriteEngine on
# If your site can be accessed both with and without the ‘www.’ prefix, you
# can use one of the following settings to redirect users to your preferred
# URL, either WITH or WITHOUT the ‘www.’ prefix. Choose ONLY one option:
#
# To redirect all users to access the site WITH the ‘www.’ prefix,
# (http://example.com/… will be redirected to http://www.example.com/…)
# adapt and uncomment the following:
# RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
# RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
#
# To redirect all users to access the site WITHOUT the ‘www.’ prefix,
# (http://www.example.com/… will be redirected to http://example.com/…)
# uncomment and adapt the following:
# RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
# RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
# Modify the RewriteBase if you are using Drupal in a subdirectory or in a
# VirtualDocumentRoot and the rewrite rules are not working properly.
# For example if your site is at http://example.com/drupal uncomment and
# modify the following line:
# RewriteBase /drupal
#
# If your site is running in a VirtualDocumentRoot at http://example.com/,
# uncomment the following line:
# RewriteBase /
# Rewrite URLs of the form ‘x’ to the form ‘index.php?q=x’.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
# $Id$