Hostwinds Учебники

Результаты поиска для:


Содержание


Что такое файл .htaccess?
Включение файла .htaccess
Шаг 1: Откройте файл виртуального хоста
Шаг 2: Добавить «AllowOverride All» Директива
Шаг 3: Сохранить файл
Шаг 4: перезагрузить Apache
Создание файла .htaccess
Перенаправление одного URL -адреса с использованием директивы «перенаправить»
Если вы хотите перенаправить один URL на другой URL на одном домене:
Если вы хотите перенаправить URL на один на разных доменах:
Объемный URL -перенаправление с использованием директивы «Переписание»
Проверьте, включен ли 'mod_rewrite
Для систем на основе красной шляпы (Centos, Fedora, Rhel):
Для Debian Systems (Ubuntu, Debian, Linux Mint):
Как включить 'mod_rewrite'
Для систем на основе красной шляпы (Centos, Fedora, Rhel):
Для Debian Systems (Ubuntu, Debian, Linux Mint):
Перенаправление URL -адресов на основе общей модели
Перенаправление всего домена в новый домен
Force https с директивой «переписано»
Принуждайте HTTPS на весь трафик
Применить HTTPS в конкретном домене
Добавление и удаление префикса 'www'

Как создать перенаправления с помощью файла .htaccess

Что такое файл .htaccess?
Включение файла .htaccess
Шаг 1: Откройте файл виртуального хоста
Шаг 2: Добавить «AllowOverride All» Директива
Шаг 3: Сохранить файл
Шаг 4: перезагрузить Apache
Создание файла .htaccess
Перенаправление одного URL -адреса с использованием директивы «перенаправить»
Если вы хотите перенаправить один URL на другой URL на одном домене:
Если вы хотите перенаправить URL на один на разных доменах:
Объемный URL -перенаправление с использованием директивы «Переписание»
Проверьте, включен ли 'mod_rewrite
Для систем на основе красной шляпы (Centos, Fedora, Rhel):
Для Debian Systems (Ubuntu, Debian, Linux Mint):
Как включить 'mod_rewrite'
Для систем на основе красной шляпы (Centos, Fedora, Rhel):
Для Debian Systems (Ubuntu, Debian, Linux Mint):
Перенаправление URL -адресов на основе общей модели
Перенаправление всего домена в новый домен
Force https с директивой «переписано»
Принуждайте HTTPS на весь трафик
Применить HTTPS в конкретном домене
Добавление и удаление префикса 'www'

Что такое файл .htaccess?

Файл .htaccess-это файл конфигурации, используемый главным образом веб-серверами Apache для управления различными аспектами поведения веб-сайта на основе регламента.Он позволяет переопределять настройки по всей стране и применять конкретные конфигурации к отдельным каталогам, не изменяя непосредственную изменение файла конфигурации основного сервера.

Файл .htaccess выделяется как удивительно мощный инструмент для эффективного управления различными задачами на бэкэнд.Одной из наиболее распространенных задач является реализация перенаправлений, где Вы можете выполнять перенаправления на уровне отдельных URL -адресов, по всем доменам и даже на уровне протокола HTTP.

В этом уроке мы рассмотрим множество вариантов .htaccess предложения для перенаправления, проводя вас по различным реализациям, чтобы вы могли эффективно перенаправить свои URL -адреса с уверенностью.

Включение файла .htaccess

Включение файла .htaccess сообщает Apache Web -серверы распознавать и принять указания, записанные в нем, которые настроят вас на переоборудование конфигураций сервера по умолчанию на уровне каталога.

Если у тебя есть виртуальный хостинг Учетная запись, ваш поставщик услуг хостинга уже должен включить его, поэтому все, что вам нужно сделать, это создать файл.

Шаг 1: Откройте файл виртуального хоста

Использование вашего предпочтительного текстового редактора (мы будем использовать нано Для этого примера) откройте файл конфигурации вашего веб -сайта со следующей командой:

Для систем на основе красной шляпы (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' (выше) указывает, что файлы вашего сайта находятся в подкаталоге с именем 'public_html ' внутри 'доменное имя«Каталог, структура, обычно используемая для отделения публичных файлов от других файлов, связанных с сайтом.Включение файла .htaccess в этом каталоге повлияет на файлы только в public_html '.
  • Пример:
/var/www/domain_name/
├── public_html/
│   ├── index.html
│   ├── about.html
│   └── .htaccess
└── logs/
  • '/var/www/domain_name' Указывает, что все файлы вашего веб -сайта расположены непосредственно вдоменное имя'каталог.Эта настройка означает, что все директивы файлов .htaccess будут применяться к каждому файлу (общедоступному или нет) в этом каталоге.
  • Пример:
/var/www/domain_name/
├── index.html
├── about.html
└── .htaccess

Хотя оба являются действительными, важно знать, какие файлы сайта вы можете или не захотеть затронуть файл .htaccess.

Шаг 2: Добавить «AllowOverride All» Директива

В рамках Virtualhost Блок добавьте следующий блок содержимого каталога:

<VirtualHost *:80>  

<Directory /var/www/domain_name/public_html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

</VirtualHost>

Эта директива, в частности 'Разрешить все«Это то, что позволяет вам применять директивы .htaccess во всех файлах веб -сайта в данном каталоге.

Шаг 3: Сохранить файл

После добавления блока каталогов сохраните и закройте файл.В Нано это можно сделать, нажав Ctrl +x, тогда Y и нажатие ВХОДИТЬ.

Шаг 4: перезагрузить Apache

Для полного обеспечения файла .htaccess вам нужно перезапустить Apache:

Для систем на основе красной шляпы (Centos, Fedora, Rhel):

sudo systemct1 restart httpd

Для Debian Systems (Debian, Ubuntu, Linux Mint):

sudo systemct1 restart apache2

Вот и все!Апач теперь позволит вам использовать файлы .htaccess в данном каталоге.

Создание файла .htaccess

При поддержке .htaccess включено, теперь мы можем создать файл .htaccess.

Чтобы создать файл .htaccess, вам нужно перейти к корневая директория где вы включили файл .htaccess.Использование вашего предпочтительного текстового редактора (опять же, мы используем NANO) введите следующую команду, заменив 'доменное имя'С вашим доменным именем.

Примечание: Удалять 'public_html«Если вы не включили файл .htaccess в этом подкатарии.

sudo nano /var/www/html/domain_name/public_html/.htaccess

Теперь вы создали файл .htaccess и можете начать выпускать директивы перенаправления.

Перенаправление одного URL -адреса с использованием директивы «перенаправить»

В 'Перенаправление«Директива-самый простой вариант для простых перенаправлений 1 на 1.Эта директива может использоваться для перенаправления URL -адресов в одном и том же домене или в другой домен.Следующие директивы будут работать для любых кодов состояния 3XX (301, 302, 307 и 308)

Если вы хотите перенаправить один URL на другой URL на одном домене:

Redirect 301 "/original_url_path" "/new_url_path"

Если вы хотите перенаправить URL на один на разных доменах:


Redirect 301 "/orignal_url_path" "https://new_domain.com/new_url_path"

Объемный URL -перенаправление с использованием директивы «Переписание»

"Переписание«Директива позволяет добавлять дополнительные правила в перенаправления, такие как сопоставление схем, путем использования регулярных выражений и условий.

Проверьте, включен ли 'mod_rewrite

Чтобы использовать «переписывание», мы должны убедиться, что модуль «mod_rewrite» включен.

Для систем на основе красной шляпы (Centos, Fedora, Rhel):
httpd -M | grep rewrite
Для Debian Systems (Ubuntu, Debian, Linux Mint):
apache2ctl -M | grep rewrite

Если вы видите следующий выход, модуль «mod_rewrite» включен

rewrite_module (shared)

Как включить 'mod_rewrite'

Для систем на основе красной шляпы (Centos, Fedora, Rhel):

Шаг 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
Для Debian Systems (Ubuntu, Debian, Linux Mint):

Шаг 1: Включить модуль 'mod_rewrite'

sudo a2enmod rewrite

Шаг 2: Перезапустить Apache, чтобы применить изменения

sudo systemctl restart apache2

Перенаправление URL -адресов на основе общей модели

Если у вас есть общий шаблон в ваших старых 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]

Force https с директивой «переписано»

Когда вы «вынуждаете HTTPS», это означает, что вы перенаправляете любые входящие HTTP -запросы вашего сайта в защищенную версию HTTPS.

Есть несколько способов заставить HTTPS с использованием директивы «Переписание»:

Принуждайте HTTPS на весь трафик

Когда вы заставляете https на «весь трафик», вы говорите серверу перенаправить каждый входящий HTTP -запрос на HTTPS, независимо от домена или субдомен.

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Этот метод принудительного HTTPS идеально подходит для серверов, размещающих один домен.

Применить 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 с этим методом особенно полезно при размещении нескольких доменов на одном сервере, и вам нужно только получить номер выбора.

Добавление и удаление префикса 'www'

Вы также можете использовать файл .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