Если вы пользователь в WordPress, то вы, вероятно, встречались файл .htaccess. Файл .htaccess позволяет произвести изменения конфигурации на основе каждого каталога, и это очень полезно в случае, если вы хотите, включить/отключить дополнительные функции и возможности для вашего сайта. В этой статье, мы собираемся показать вам, как настроить базовый сайт WordPress с оптимальными настройками .htaccess на VPS под управлением Ubuntu 16.04 в качестве операционной системы.
Это очень важно, чтобы все свое программное обеспечение держать в актуальном состоянии, так как только вы подключитесь к Linux VPS через SSH, сразу обновите программное обеспечение до последней версии с помощью следующих команд:
sudo apt-get update sudo apt-get upgrade
Также можно включить автоматическое обновление в Ubuntu VPS.
Прежде всего, создайте каталог для WordPress файлов и загрузите последнюю версию WordPress:
sudo mkdir /var/www/html/wordpress cd /var/www/html/wordpress sudo wget https://wordpress.org/latest.zip
Распакуйте архив и установите правильные разрешения:
sudo unzip latest.zip sudo mv wordpress/* . sudo rm -rf latest.zip wordpress sudo mv wp-config-sample.php wp-config.php sudo chown -R www-data: /var/www/html/wordpress
Следующим шагом является создание базы данных MySQL и пользователя для нового сайта WordPress. Войдите на сервер баз данных MySQL:
mysql -u root -p
Выполните следующие команды:
mysql> CREATE DATABASE wordpressdb; mysql> GRANT ALL PRIVILEGES on wordpressdb.* to 'wordpressuser'@'localhost' identified by 'PaSsW0rD'; mysql> FLUSH PRIVILEGES; mysql> EXIT
Теперь отредактируйте файл wp-config.php
и измените параметры базы данных:
// ** Настройки MySQL - вы можете получить эту информацию от вашего веб-хостинга ** // /** Имя базы данных для WordPress */ define('DB_NAME', 'wordpressdb'); /** Пользователь базы данных MySQL */ define('DB_USER', 'wordpressuser'); /** Пароль базы данных MySQL */ define('DB_PASSWORD', 'PaSsW0rD'); /** Имя хоста MySQL */ define('DB_HOST', 'localhost');
Создайте виртуальный хост для нового WordPress сайта:
sudo nano /etc/apache2/sites-available/yourdomain.com.conf
Вставьте следующие строки:
<VirtualHost *:80> ServerAdmin admin@yourdomain.ru DocumentRoot /var/www/html/wordpress ServerName yourdomain.ru ServerAlias www.yourdomain.ru <Directory /var/www/html/wordpress/> Require all granted </Directory> ErrorLog /var/log/apache2/yourdomain.ru-error_log CustomLog /var/log/apache2/yourdomain.ru-access_log common </VirtualHost>
Включите новый виртуальный хост и перезагрузите Apache для того, чтобы изменения вступили в силу:
sudo a2ensite yourdomain.ru.conf sudo systemctl reload apache2
Теперь вы должны быть в состоянии получить доступ к WordPress сайту через веб-браузер, используя доменное имя.
После того, как вы настроили учетную запись администратора, вы можете приступить к настройке .htaccess.
Первое, что нужно сделать после установки WordPress на вашем Ubuntu VPS это настроить параметры постоянных ссылок в WordPress. Это очень важная вещь, чтобы сделать, так как это позволит улучшить качество SEO вашего сайта. Откройте файл .htaccess с помощью текстового редактора, такого как nano
:
sudo nano /var/www/html/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
Следующая вещь, которую вы можете сделать, это защитить файл .htaccess сами:
# Зашита .htaccess <files ~ "^.*\.([Hh][Tt][Aa])"> order allow,deny deny from all satisfy all </files>
В то время как вы здесь, вы можете защитить также файл WP-config.php:
# Защита файла WP-Config <files wp-config.php> order allow,deny deny from all </files>
Вы также можете отключить список каталогов, добавив следующую строку:
# Отключить листинг каталога Options All -Indexes
Если вы не планируете разрешить третьей стороне приложения для удаленного подключения к вашему WordPress сайту, вы можете отключить файл xmlrpc.php:
# Защита файла XMLRPC <Files xmlrpc.php> order deny,allow deny from all </Files>
Когда речь идет о производительности, вы можете включить сжатие GZIP :
<IfModule mod_deflate.c> # Compress HTML, CSS, JavaScript, Text, XML and fonts AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/vnd.ms-fontobject AddOutputFilterByType DEFLATE application/x-font AddOutputFilterByType DEFLATE application/x-font-opentype AddOutputFilterByType DEFLATE application/x-font-otf AddOutputFilterByType DEFLATE application/x-font-truetype AddOutputFilterByType DEFLATE application/x-font-ttf AddOutputFilterByType DEFLATE application/x-javascript AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE font/opentype AddOutputFilterByType DEFLATE font/otf AddOutputFilterByType DEFLATE font/ttf AddOutputFilterByType DEFLATE image/svg+xml AddOutputFilterByType DEFLATE image/x-icon AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/javascript AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/xml # Remove browser bugs (only needed for really old browsers) BrowserMatch ^Mozilla/4 gzip-only-text/html BrowserMatch ^Mozilla/4\.0[678] no-gzip BrowserMatch \bMSIE !no-gzip !gzip-only-text/html Header append Vary User-Agent </IfModule>
Кроме того, вы можете включить кэширование браузера:
# Истечение срока действия кэша <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType text/css "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 2 days" </IfModule>
Это, несомненно, улучшит общий балл при выполнении онлайных тестов скорости на вашем WordPress сайте.
Если вы используете сертификат SSL для вашего сайта вы наверняка хотели бы перенаправить весь HTTP трафик HTTPS . Добавьте следующие строки, чтобы сделать так:
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
Есть больше модификаций, которые вы можете сделать в вашем файле .htaccess, но те, которые мы перечислили выше, должно быть достаточно для оптимальной установки.