.htaccess - използване на mod_rewrite модул на apache уеб сървър
Коментирано от Включен 27 December 2012 18:19
|
|
Apache моулът mod_rewrite е базиран на регулярни изрази и позволява "презаписване" или иначе казано пренасочване на URL заявки към определена поддиректория, като това пренасочване се извършва на сървърно ниво. Какво се има впредвид, например искаме когато напишем адрес: example.com, всъщност да отворим ресурс който е поместен в поддиректория на този URL, а именно example.com/folder1/resource.html. Този ефект може да бъде постигнат с mod_rewrite. Mod_rewrite модулът и неговата "функционалност" се дефинира в .htaccess файл в основната директория на потребителя. Този файл по подразбиране не се вижда във файл мениджъра на cPanel и ако искаме да го модифицираме (ако вече съществува такъв) или да направим нов, ще трябва да го създадем на локалната си машина и след това да го качим посредством ftp клиент. Първо ще покажем пример след което ще обясним кое какво ознчава в примера. Пример: В първият пример ще покажем как да пренасочим URL http://www.example.com/folder1/ към http://www.example.com/folder2/. Options +FollowSymLinks RewriteEngine On RewriteRule ^folder1.*$ http://www.example.com/folder2/ [R=301,L] Ако желаем като напишем URL http://www.example.com/folder1/ да отваря home директорията на нашия сайт а именно http://www.example.com, то нашият .htaccess файл трябва да изглежда по следния начин: Options +FollowSymLinks RewriteEngine On RewriteRule ^folder1.*$ http://www.example.com/ [R=301,L]
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} example.com$ [NC]
RewriteCond %{HTTP_HOST} !folder1
RewriteRule ^(.*)$ http://example.com/folder1/$1 [R=301,L]
В този пример има няколко нови директиви:
Пренасочване на адрес http://example.com на адрес http://www.example.com. Този пример също ще работи и ако се опитваме да достъпим определен файл например http://example.com/file.html. Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^example.com [NC] RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
^archive.*$ - по този начин ще съвпаднем всичко то вида: "archive2012", "archive_daily". ^.*$ - обозначава "прихвани всичко", това може да бъде полезно в случай когато незнаем потребителя какво би вавел за URL.
Ако изпитвате някакви затруднения с конфигурирането можете да се свържете с нашата техническа поддръжка на имейл адрес: support@icn.bg или телефон 02 491 8877 и +359 888 738338 | |
|