Пренасочване на Htaccess и конфигурирането му
Файловете .htaccess могат да бъдат разположени в основната директория на сайта (например, / начало / потребител / име на сайта /)
съдържание
- Създаване на .htaccess файл
- Изтегляне на файла .htaccess на сървъра
- Проверка на работата на .htaccess
- Малко за приоритетите на пренасочването .htaccess
- Пренасочване .htaccess: основни изгледи
- 301: непрекъснато пренасочване
- 302: Временно пренасочване
- Примери за сценарии на пренасочване
- Грешка 404 не е намерена
- Неограничен url адрес, изчакване или цикъл
- Как да направите пренасочване без .htaccess
Много системи за управление на съдържанието приемат настройките за пренасочване на сайта от .htaccess. Можете да редактирате файловете, създадени от вашата CMS, като въведете нови директории за пренасочване или да създадете свои собствени .htaccess файлове ръчно.
Създаване на .htaccess файл
Първата стъпка в настройването на пренасочването. Htaccess е всъщност създаването на самия файл. Вашият .htaccess трябва да бъде обикновен текстов файл. Това означава, че трябва да го създадете в програма за редактиране на текст, която може да генерира обикновени текстови (.txt) файлове.
- На компютър с Windows можете да използвате Notepad, който е един от вградените стандартни програми.
- На Mac можете да използвате TextEdit. Първо трябва да отворите менюто "Настройки" в TextEdit и да изберете "Опростен текст" в секцията "Нов документ". След това можете да започнете процеса на създаване на нов текстов документ TextEdit за вашия .htaccess файл.
- На Linux можете да използвате който и да е от многото текстови редактори, налични за вашата дистрибуция - конзола (vi, nano) и графична (например gedit).
Когато запазвате документ, не забравяйте да го наречете htaccess.txt. Ако го запазите просто като .htaccess, компютърът ви ще скрие файла. Това е така, защото файловете, започващи с точка, се считат за системни файлове.
Изтегляне на файла .htaccess на сървъра
За правилно пренасочване чрез .htaccess файлът трябва да бъде изтеглен точно в директорията на сървъра, за която искате да зададете настройките за пренасочване. Обикновено това е вашата директория на HTML файлове (/var/www/vhosts/example.com/httpdocs/), въпреки че можете да я качите в някоя поддиректория на вашия сървър.
След като файлът бъде зареден, преименувайте го директно на .htaccess.
На този етап файлът може да стане невидим за вашия FTP клиент, тъй като той вече има формата на системен файл. много FTP клиенти ви позволяват да преглеждате скритите файлове и папки - препоръчително е да активирате тази функция. За инструкции как да го включите, вижте документацията на клиента.
Проверка на работата на .htaccess
Най-лесният начин да проверите дали вашият уеб сървър обработва вашия .htaccess файл е умишленото му увреждане.
Редактирайте файла .htaccess така, че първият ред да започва с думата Test:
тест
# Задайте началната страница
DirectoryIndex page.html page.txt ...
Сега, ако рестартирате основната страница на сайта си, ще видите следната грешка (на снимката по-долу).
Ако възникне такава грешка, това всъщност е добро - тогава сървърът обработва вашия файл и чете директивите за пренасочване от него. Ако не, уверете се, че файлът и директорията, в която се намира, са четливи и, ако е необходимо, променете правата за достъп.
Малко за приоритетите на пренасочването .htaccess
Правилата .htaccess са рекурсивни. Това означава, че директивите са написани във файл /home/user/sitename_html/.htaccess ще бъде приложено към това указател и на нейните детски папки - освен в случаите, когато дадено правило е отменено, като се използва директивата в .htaccess файла, намиращ се в директорията за деца.
По този начин настройките за пренасочване чрез .htaccess, дадени от файла на по-високо ниво, се заменят с настройките на файловете на по-ниските нива. Ако например искате да активирате пренасочването за по-голямата част от сайта си, но да го забраните за конкретна директория, можете да създадете отделен .htaccess с подходящите настройки и да го качите само в тази директория.
По същия начин, ниско ниво на .htaccess файлове заменят настройките на PHP в php.ini файлове vhost.conf и по-високи нива, освен ако не е заменено не е изрично забранено за тези файлове.
Накрая, редът на правилата за пренасочване .htaccess във файл може да има стойност за някои видове директиви. Списъкът от правила се обработва последователно от началото до крайните директиви в началото на файла.
Пренасочване .htaccess: основни изгледи
Има различни видове пренасочвания, които могат да се изпълняват чрез .htaccess файлове. Ще ги анализираме и ще разгледаме всеки тип, преди да научим как да ги използваме.
301: непрекъснато пренасочване
Това е най-често срещаният тип пренасочване и най-вероятно този, който най-често ще конфигурирате. В файла .htaccess 301 пренасочването на страница показва, че неговият стар URL адрес (пренасочен URL) вече не се използва.
302: Временно пренасочване
Пренасочването 302 показва, че старият URL на страницата временно е деактивиран, но скоро ще бъде възстановен. За Apache това правило за пренасочване се използва по подразбиране.
По този начин, преди да конфигурирате пренасочването .htaccess, трябва да определите дали пренасочването е постоянно или временно. За примерите в тази статия ще използваме пренасочването 301.
Примери за сценарии на пренасочване
По-долу са най-често срещаните примери за пренасочване .htaccess.
За да използвате някоя от тях, трябва да отворите създадения от вас файл .htaccess с който и да е текстов редактор и да добавите необходимата проба от код към него.
За да работи кодът, модулът за презаписване (mod_rewrite) трябва да бъде активиран на уеб сървъра на Apache. За да направите това, трябва да извършите няколко действия в зависимост от вашата операционна система.
В Windows направете следното:
Намиране и отваряне на файл .http.conf. Това е в директорията, в която сте инсталирали Apache.
Създайте резервно копие http.conf, за да възстановите файла, ако е необходимо, ако правите грешки.
Намерете линия във файла #LoadModule rewrite_module modules / mod_rewrite.so и го отключете (премахнете знака #).
Намерете блока, приложен в таговете
и го заменете .Опции ВсичкиAllowOverride All Намерете всички референции "AllowOverride None" и ги заменете навсякъде с "AllowOverride All".
-
Рестартирайте уеб сървъра и браузъра си.
На Linux е достатъчно да се изпълни в терминала:
sudo a2enmod пренапише
Тази команда ще стартира модула или ще ви уведоми, че модулът вече работи. За да активирате новите промени, рестартирайте Apache с командата в терминала:
sudo услуга apache2 рестартиране
Сега можем да започнем редактирането на файла .htaccess и изучаването на най-често срещаните директиви за пренасочване.
1. Пренасочване от една страница към друга в .htaccess:
Пренасочване 301 /retiredpage.html https://example.com/newpage.html
2. Пренасочване на папки (с цялото съдържание):
RedirectMatch 301 ^ / olddir / https://yourdomain.com/newdir/
3. Пренасочване на страницата в .htaccess с премахването на WWW:
RewriteEngine On
RewriteCond% {HTTP_HOST} ^ Името на сайта .com $ [NC]
RewriteRule ^ (. *) $ Http://sitename.com/$1 [L, R = 301]
4. Пренасочване с добавяне на WWW:
RewriteEngine On
RewriteCond% {HTTP_HOST}! ^ Www .samplehost .com $ [NC]
RewriteRule ^ (. *) $ Http://samplehost.com/$1 [L, R = 301]
5. Пренасочване към друг домейн в .htaccess (пълно преместване на сайта):
RedirectMatch 301 ^ (. *) $ Http://yoursite.com
6 .htaccess-пренасочващи HTML файлове към PHP файлове:
RedirectMatch 301 (. *) . Html $ http: //examplesite.com$1.php
7. Пренасочване на страници с добавяне на HTTPS:
RewriteCond% {HTTPS} изключен
RewriteRule (. *) Https: //% {SERVER_NAME} / $ 1 [R = постоянен, L]
8. Заменете всички главни букви в URL адреса с малки букви:
RewriteMap lc int: tolower
Този фрагмент от код трябва да бъде добавен към httpd.conf на вашия уеб сървър. След това трябва да отворите файла .htaccess и да добавите:
RewriteEngine On
RewriteCond% {REQUEST_URI} [A-Z]
RewriteRule. $ {lc:% {REQUEST_URI}} [R = 301, L]
9. Използване на регулярни изрази. Правилата за пренасочване често съдържат знаци, които се добавят към регулярните изрази. Благодарение на това сървърът знае точно какво искате да промените в URL адреса. Въпреки това, регулярните изрази могат да бъдат трудно разбираеми с един поглед. Ето някои общи елементи, които можете да видите и използвате в техните правила за пренаписване на URL адреси, както и конкретни примери за тяхното използване:
^: началото на заменения низ;
$: края на заменения низ.
например: регулярен израз ^ folder1 $ Той дава сигнал за намиране и заместване на текста «FOLDER1» във вътрешността на връзката.
. : всеки знак, който не е пространство (например, а, В, 3) -
*: показва, че предходният текст може да се повтори няколко пъти;
например: регулярен израз ^ качвания. * $ ви позволява да замените текста «Uploads2009»,«Uploads2010» и така нататък;
Редовен израз ^. * $ означава "да намериш нещо". Това е полезно, ако не знаете, че потребителят може да въведе URL адреса в текста.
(): изберете част от текста, който трябва да се използва в правилото като стойност от $ 1. Това е необходимо, например, за обработка на заявки за конкретни файлове, които трябва да бъдат еднакви както за старата, така и за новата версия на URL адреса.
Грешка 404 не е намерена
Понякога се случва да възникват грешки при настройване на пренасочването. Нека разгледаме основните причини, поради които пренасочването .htaccess може да не работи.
Често срещана грешка е грешката от грешка 404, която се получава при пренасочване. В този случай трябва внимателно да прегледате URL адреса, създаден в адресната лента. Има ли файл в новото местоположение на сървъра, определен от правилото за препращане? Може да се наложи да копирате файлове от старото си местоположение в ново местоположение или да направите правилото за пренасочване по-широко, така че ако няма файл, който да ви е необходим, на сайта бе изпратен линк към главната страница на сайта.
Ако URL адресът е просто неправилен (например, https://example.com/folder1//file.html - обърнете внимание на две наклони), трябва да преразгледате синтаксиса на правилото за пренасочване.
Неограничен URL адрес, изчакване или цикъл
Ако URL адресът, генериран по време на пренасочване, е твърде дълъг или страницата е прекалено дълга за зареждане, или браузърът ви дава съобщение за грешка при пренасочване, вероятно е няколко правила за пренасочване да са в противоречие помежду си.
Необходимо е да проверите целия файл .htaccess за правилата за пренасочване, които могат да съвпадат с други правила. Може да се наложи да проверите и файловете .htaccess в поддиректории. Имайте предвид, че FTP няма да показва .htaccess файлове, освен ако не активирате опцията за преглеждане на скрити файлове и папки.
Освен това можете да включите пренасочвания в HTML и PHP страници. Проверете страницата, с която възниква проблемът при вътрешни пренасочвания.
допълнение [L] след като правилото за пренасочване може да помогне в някои случаи, тъй като този флаг командира сървъра да спре да се опитва да пренасочи URL адреса след прилагане на правилото.
Как да направите пренасочване без .htaccess
В заключение, нека разгледаме как да пренасочваме URL адресите без да редактираме файла .htaccess, като използваме хост виртуален сървър на Apache. Между другото, този метод е по-лесен от съставянето на правила за пренасочване за страници в .htaccess.
Отворете конфигурационния файл vhost (httpd.conf) с текстовия редактор, който обикновено се намира в директория / etc / apache2 / sites / sitename.
Избраният фрагмент от примерния файл показва пренасочването:
ServerName mysite.com
ServerAlias mysite.com
Пренасочване / https://mysite.com
Горната конфигурация пренасочва всички заявки за домейни без поддомейн
За да пренасочите всички заявки към домейн с поддомейн WWW, променете конфигурацията, както е показано по-долу.
ServerName anywebsite.com
ServerAlias anywebsite.com
Пренасочване / https://anywebsite.com
Рестартирайте Apache и сайтът ще започне да се пренасочва правилно. Горният метод е най-простият и е по-лесен за изпълнение от пренасочването от една страница към друга в htaccess.
- Как да поставите сайта в интернет?
- Свободен HTTPS сертификат: инструкция за получаване
- Как да направя HTTPS връзка? Каква е разликата между сайтовете на HTTPS или HTTP?
- Как да направите CNC връзки: инструкции стъпка по стъпка
- Как да направите пренасочване от http към https и защо е необходимо?
- Резултат от грешки в PHP
- Какво представлява връзка в интернет и в програмата `Word`?
- Каква е грешката на 500 вътрешни сървъра? Какво ще стане, ако видяхте 500 вътрешен сървър за грешки…
- Хостове - какво трябва да има там? Хоства файл
- Retargeting - какво е това? Видове пренасочване
- Грешка Вътрешен сървър грешка: какво е и как да се справим с него
- Как да конфигурирате пренасочването 301 чрез .htaccess. Правилното отношение като 301 пренасочване…
- HOSTS файл (Windows 7): съдържание, цел, възстановяване
- HTML пренасочване: контрол на потока на посетителите
- Htaccess (кодиране): настройка, примери за използване
- 403 Забранено Nginx: какво е това и как да го оправим?
- Инсталиране и конфигуриране на phpMyAdmin: стъпка по стъпка инструкции и препоръки
- Как да спра на достъпа до сайта?
- Как да прехвърлите сайта на друг хостинг сайт с CMS Joomla.
- Вътрешна сървърна грешка или грешка 500
- Грешка 503. Каква е причината?