Hostwinds Учебники
Результаты поиска для:
Содержание
Файл .htaccess-это файл конфигурации, используемый главным образом веб-серверами Apache для управления различными аспектами поведения веб-сайта на основе регламента.Он позволяет переопределять настройки по всей стране и применять конкретные конфигурации к отдельным каталогам, не изменяя непосредственную изменение файла конфигурации основного сервера.
Файл .htaccess выделяется как удивительно мощный инструмент для эффективного управления различными задачами на бэкэнд.Одной из наиболее распространенных задач является реализация перенаправлений, где Вы можете выполнять перенаправления на уровне отдельных URL -адресов, по всем доменам и даже на уровне протокола HTTP.
В этом уроке мы рассмотрим множество вариантов .htaccess предложения для перенаправления, проводя вас по различным реализациям, чтобы вы могли эффективно перенаправить свои URL -адреса с уверенностью.
Включение файла .htaccess сообщает Apache Web -серверы распознавать и принять указания, записанные в нем, которые настроят вас на переоборудование конфигураций сервера по умолчанию на уровне каталога.
Если у тебя есть виртуальный хостинг Учетная запись, ваш поставщик услуг хостинга уже должен включить его, поэтому все, что вам нужно сделать, это создать файл.
Использование вашего предпочтительного текстового редактора (мы будем использовать нано Для этого примера) откройте файл конфигурации вашего веб -сайта со следующей командой:
Для систем на основе красной шляпы (Centos, Fedora, Rhel):
sudo nano /etc/httpd/conf/httpd.conf
Для Debian Systems (Debian, Ubuntu, Linux Mint):
sudo nano /etc/apache2/sites-available/domain_name.conf
Блок файла VirtualHost будет выглядеть примерно так:
<VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName domain_name
ServerAlias www.domain_name
DocumentRoot /var/www/domain_name/public_html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Примечание: В зависимости от того, как организованы файлы вашего сайта, 'DocumentRoot' может отличаться.Есть две общие установки:
/var/www/domain_name/
├── public_html/
│ ├── index.html
│ ├── about.html
│ └── .htaccess
└── logs/
/var/www/domain_name/
├── index.html
├── about.html
└── .htaccess
Хотя оба являются действительными, важно знать, какие файлы сайта вы можете или не захотеть затронуть файл .htaccess.
В рамках Virtualhost Блок добавьте следующий блок содержимого каталога:
<VirtualHost *:80>
<Directory /var/www/domain_name/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Эта директива, в частности 'Разрешить все«Это то, что позволяет вам применять директивы .htaccess во всех файлах веб -сайта в данном каталоге.
После добавления блока каталогов сохраните и закройте файл.В Нано это можно сделать, нажав Ctrl +x, тогда Y и нажатие ВХОДИТЬ.
Для полного обеспечения файла .htaccess вам нужно перезапустить Apache:
Для систем на основе красной шляпы (Centos, Fedora, Rhel):
sudo systemct1 restart httpd
Для Debian Systems (Debian, Ubuntu, Linux Mint):
sudo systemct1 restart apache2
Вот и все!Апач теперь позволит вам использовать файлы .htaccess в данном каталоге.
При поддержке .htaccess включено, теперь мы можем создать файл .htaccess.
Чтобы создать файл .htaccess, вам нужно перейти к корневая директория где вы включили файл .htaccess.Использование вашего предпочтительного текстового редактора (опять же, мы используем NANO) введите следующую команду, заменив 'доменное имя'С вашим доменным именем.
Примечание: Удалять 'public_html«Если вы не включили файл .htaccess в этом подкатарии.
sudo nano /var/www/html/domain_name/public_html/.htaccess
Теперь вы создали файл .htaccess и можете начать выпускать директивы перенаправления.
В 'Перенаправление«Директива-самый простой вариант для простых перенаправлений 1 на 1.Эта директива может использоваться для перенаправления URL -адресов в одном и том же домене или в другой домен.Следующие директивы будут работать для любых кодов состояния 3XX (301, 302, 307 и 308)
Redirect 301 "/original_url_path" "/new_url_path"
Redirect 301 "/orignal_url_path" "https://new_domain.com/new_url_path"
"Переписание«Директива позволяет добавлять дополнительные правила в перенаправления, такие как сопоставление схем, путем использования регулярных выражений и условий.
Чтобы использовать «переписывание», мы должны убедиться, что модуль «mod_rewrite» включен.
httpd -M | grep rewrite
apache2ctl -M | grep rewrite
Если вы видите следующий выход, модуль «mod_rewrite» включен
rewrite_module (shared)
Шаг 1: Откройте файл конфигурации Apache (обычно «httpd.conf» или «apache2.conf»)
sudo nano /etc/httpd/conf/httpd.conf
Шаг 2: Убедитесь, что следующая строка не прокомментирована (нет # в начале).Если это так, просто удалите '#'
LoadModule rewrite_module modules/mod_rewrite.so
Шаг 3: Перезапустить Apache, чтобы применить изменения
sudo systemctl restart httpd
Шаг 1: Включить модуль 'mod_rewrite'
sudo a2enmod rewrite
Шаг 2: Перезапустить Apache, чтобы применить изменения
sudo systemctl restart apache2
Если у вас есть общий шаблон в ваших старых URL -адресах, например, в том же подкаталоге (Ex. /Blog), вы можете использовать регулярные выражения, чтобы соответствовать и перенаправить их:
RewriteEngine On
RewriteRule ^old-section/(.*)$ http://www.example.com/new-section/$1 [R=301,L]
В этом примере любой URL, который начинается с 'старость/' будет перенаправлен на 'новая часть/' с тем же суффиксом.
Следующая директива будет перенаправить весь трафик из 'old-domain.com' к 'new-domain.com, 'Сохранение пути URI.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old-domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.new-domain.com/$1 [R=301,L]
Когда вы «вынуждаете HTTPS», это означает, что вы перенаправляете любые входящие HTTP -запросы вашего сайта в защищенную версию HTTPS.
Есть несколько способов заставить HTTPS с использованием директивы «Переписание»:
Когда вы заставляете https на «весь трафик», вы говорите серверу перенаправить каждый входящий HTTP -запрос на HTTPS, независимо от домена или субдомен.
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Этот метод принудительного HTTPS идеально подходит для серверов, размещающих один домен.
Когда вы заставляете HTTPS в определенном домене, вы говорите серверу перенаправить HTTP -запросы на HTTPS только для этого конкретного домена (или субдомена).
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?specific-domain\.com$ [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Принуждение HTTPS с этим методом особенно полезно при размещении нескольких доменов на одном сервере, и вам нужно только получить номер выбора.
Вы также можете использовать файл .htaccess в сочетании с директивой «Переписи», чтобы перенаправить префикс «www».
Чтобы добавить префикс «www»:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301]
Чтобы удалить префикс 'www':
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
Написано Hostwinds Team / Июнь 3, 2024