muzruno.com

Пренасочване на Htaccess и конфигурирането му

Файловете .htaccess могат да бъдат разположени в основната директория на сайта (например, / начало / потребител / име на сайта /)

или неговите поддиректории. Те се използват за организиране на пренасочване ("пренасочване") на посетители от един домейн или документ от вашия уеб сървър към друг. Всеки .htaccess файл съдържа набор от правила (директиви), според които уеб сървърът пренасочва потребителя към определена страница.

Много системи за управление на съдържанието приемат настройките за пренасочване на сайта от .htaccess. Можете да редактирате файловете, създадени от вашата CMS, като въведете нови директории за пренасочване или да създадете свои собствени .htaccess файлове ръчно.

пренасочи 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

Правилата .htaccess са рекурсивни. Това означава, че директивите са написани във файл /home/user/sitename_html/.htaccess ще бъде приложено към това указател и на нейните детски папки - освен в случаите, когато дадено правило е отменено, като се използва директивата в .htaccess файла, намиращ се в директорията за деца.

По този начин настройките за пренасочване чрез .htaccess, дадени от файла на по-високо ниво, се заменят с настройките на файловете на по-ниските нива. Ако например искате да активирате пренасочването за по-голямата част от сайта си, но да го забраните за конкретна директория, можете да създадете отделен .htaccess с подходящите настройки и да го качите само в тази директория.

По същия начин, ниско ниво на .htaccess файлове заменят настройките на PHP в php.ini файлове vhost.conf и по-високи нива, освен ако не е заменено не е изрично забранено за тези файлове.

Накрая, редът на правилата за пренасочване .htaccess във файл може да има стойност за някои видове директиви. Списъкът от правила се обработва последователно от началото до крайните директиви в началото на файла.

пренасочи htaccess

Пренасочване .htaccess: основни изгледи

Има различни видове пренасочвания, които могат да се изпълняват чрез .htaccess файлове. Ще ги анализираме и ще разгледаме всеки тип, преди да научим как да ги използваме.

301: непрекъснато пренасочване

Това е най-често срещаният тип пренасочване и най-вероятно този, който най-често ще конфигурирате. В файла .htaccess 301 пренасочването на страница показва, че неговият стар URL адрес (пренасочен URL) вече не се използва.

302: Временно пренасочване

Пренасочването 302 показва, че старият URL на страницата временно е деактивиран, но скоро ще бъде възстановен. За Apache това правило за пренасочване се използва по подразбиране.

По този начин, преди да конфигурирате пренасочването .htaccess, трябва да определите дали пренасочването е постоянно или временно. За примерите в тази статия ще използваме пренасочването 301.

пренасочване чрез htaccess

Примери за сценарии на пренасочване

По-долу са най-често срещаните примери за пренасочване .htaccess.

За да използвате някоя от тях, трябва да отворите създадения от вас файл .htaccess с който и да е текстов редактор и да добавите необходимата проба от код към него.

За да работи кодът, модулът за презаписване (mod_rewrite) трябва да бъде активиран на уеб сървъра на Apache. За да направите това, трябва да извършите няколко действия в зависимост от вашата операционна система.

В Windows направете следното:

  1. Намиране и отваряне на файл .http.conf. Това е в директорията, в която сте инсталирали Apache.

  2. Създайте резервно копие http.conf, за да възстановите файла, ако е необходимо, ако правите грешки.

  3. Намерете линия във файла #LoadModule rewrite_module modules / mod_rewrite.so и го отключете (премахнете знака #).

  4. Намерете блока, приложен в таговете и го заменете Опции ВсичкиAllowOverride All.

  5. Намерете всички референции "AllowOverride None" и ги заменете навсякъде с "AllowOverride All".

  6. Рестартирайте уеб сървъра и браузъра си.

На Linux е достатъчно да се изпълни в терминала:

sudo a2enmod пренапише

Тази команда ще стартира модула или ще ви уведоми, че модулът вече работи. За да активирате новите промени, рестартирайте Apache с командата в терминала:

sudo услуга apache2 рестартиране

htaccess 301 страница за пренасочване

Сега можем да започнем редактирането на файла .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 адреса.

не работи htaccess пренасочване

Грешка 404 не е намерена

Понякога се случва да възникват грешки при настройване на пренасочването. Нека разгледаме основните причини, поради които пренасочването .htaccess може да не работи.

Често срещана грешка е грешката от грешка 404, която се получава при пренасочване. В този случай трябва внимателно да прегледате URL адреса, създаден в адресната лента. Има ли файл в новото местоположение на сървъра, определен от правилото за препращане? Може да се наложи да копирате файлове от старото си местоположение в ново местоположение или да направите правилото за пренасочване по-широко, така че ако няма файл, който да ви е необходим, на сайта бе изпратен линк към главната страница на сайта.

Ако URL адресът е просто неправилен (например, https://example.com/folder1//file.html - обърнете внимание на две наклони), трябва да преразгледате синтаксиса на правилото за пренасочване.

Неограничен URL адрес, изчакване или цикъл

Ако URL адресът, генериран по време на пренасочване, е твърде дълъг или страницата е прекалено дълга за зареждане, или браузърът ви дава съобщение за грешка при пренасочване, вероятно е няколко правила за пренасочване да са в противоречие помежду си.

Необходимо е да проверите целия файл .htaccess за правилата за пренасочване, които могат да съвпадат с други правила. Може да се наложи да проверите и файловете .htaccess в поддиректории. Имайте предвид, че FTP няма да показва .htaccess файлове, освен ако не активирате опцията за преглеждане на скрити файлове и папки.

Освен това можете да включите пренасочвания в HTML и PHP страници. Проверете страницата, с която възниква проблемът при вътрешни пренасочвания.

допълнение [L] след като правилото за пренасочване може да помогне в някои случаи, тъй като този флаг командира сървъра да спре да се опитва да пренасочи URL адреса след прилагане на правилото.

Как да направите пренасочване без .htaccess

пренасочване към друг домейн 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.

Споделяне в социалните мрежи:

сроден