За сваки савремени сајт неопходан услов је да адресе до докумената буду оптимизоване за интернет претраживаче. О томе како се преусмеравају оптимизоване путање на стварни садржај писао сам у чланку Редирекција домена са .htaccess али и без њега.
Понекад се деси да на сајту који већ има подешено преусмеравање оптимизованих путања постоји потреба да се у поддиректоријум смести садржај који је независан.
Ако имате укључену обичну редирекцију и поставите независан поддиректоријум, садржај тог директоријума нећете моћи да прикажете, јер сваки упит ка сајту пролази кроз механизам редирекције и бива усмерен на основни веб сајт.
Да бисте то онемогућили на самом почетку правила за редирекцију (одмах испод линије Rewrite Engine on додајте:
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d
Ове две команде објашњавају веб серверу да прво провери да ли постоји датотека (прва линија) или директоријум (друга линија) на наведеној путањи. Ако постоји, он ће приказати тај садржај и неће покретати механизам преусмеравања.
Ово ће осигурати да ваш независни директоријум и његов садржај буду виљиви директно.
Ипак, ако у тај директоријум ставите заштиту приступа лозинком подешавањем .htaccess датотеке и додатном датотеком са лозинкама, то неће радити.
Веб сервер ће покушај приступа садржају који је заштићен лозинком протумачити као приступ непостојећем садржају па ће поново бити активиран механизам преусмеравања. Веб сервер неће тражити лозинку него ће адресу преусмерити на основни сајт, који пошто та адреса није исправна приказати да тражени документ не постоји.
Да се то не би догађало, потребно је да у .htaccess датотеци у којој је подешено преусмеравање нагласите шта да се ради са садржајима за које се тражи лозинка, и то такође пре команди за преусмеравање. Дакле, одмах испод команде Rewrite Engine on додајте:
ErrorDocument 401 default
То ће обезбедити да веб сервер за документе за које је подешен приступ лозинком, заиста затражи лозинку
Коначан изглед .htaccess датотеке може да изгледа овако:
RewriteEngine on ErrorDocument 401 default RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [L,QSA] RewriteCond %{HTTP_HOST} !^(www)(.*)$ RewriteRule ^/?(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
Овако подешена .htaccess датотека неће ометати приступ садржајима заштићеним лозинком и независним директоријумима и документима који физички постоје на сајту.
Све остале путање ће бити преусмерена на ПХП скрипт index.php у основном директоријуму, који треба да зна шта са њима да ради.