Problem z hierarchią htaccess

0

Załóżmy taką sytuację:

Istnieje domena.com, podpięta do hostingu do katalogu głównego. Istnieje także domena2.com podpięta do katalogu domena2 w katalogu głównym, więc siłą rzeczy adres domena.com/domena2 jest równoznaczne z domena2.com. W katalogu domena2 umieszczenie pliku .htaccess z zawartością:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domena\.com$ [NC]
RewriteRule .* - [F]

Powoduje zablokowanie wywołań do folderu domena2 z hosta (www.)domena.com, także dostęp jest możliwy już tylko poprzez domena2.com. Do tej pory wszystko ok.

Załóżmy jednak, że domena2.com tworzy sobie mały serwis (domena2.com/serwis/) i potrzebuje do tego mod_rewrite, aby zmieniać adresy stron. Wstawienie .htaccess do root/domena2/serwis o treści np.:

RewriteEngine on
RewriteRule ^strona-([0-9]+)$ strona.php?id=$1

Powoduje przestanie działania wcześniejszej reguły i do serwisu można uzyskać dostęp nie tylko poprzez domena2.com/serwis, ale i także domena.com/domena2/serwis/ (co jest niemożliwe gdy .htaccess w katalogu serwis nie istnieje).

Jak temu zaradzić, albo w jak inny sposób blokować dostęp do katalogów domena2, gdy wywoływane są z adresu domena.com?

0

Z poziomu PHP pogrzeb w tablicy $_SERVER.

0
Demonical Monk afk napisał(a)

Z poziomu PHP pogrzeb w tablicy $_SERVER.

W przypadku pierwszego .htaccess musiałbym cały ruch przepuścić przez jakiś plik php za pomoca mod_rewrite, który i tak by nie zadziałał, gdyby użyty został drugi .htaccess. Natomiast w przypadku modyfikacji drugiego pliku znowu musiałbym cały ruch przepuścić przez jakiś kontrolujący plik php i powtarzać to dla każdego "serwisu", co wprowadza zbyt duży stopień komplikacji jak na coś raczej tak prostego.

0

Jeszcze jest taka opcja jak AllowOverride...

0
Demonical Monk afk napisał(a)

Jeszcze jest taka opcja jak AllowOverride...

Może i jest, ale co z nią zrobić? Bo co bym nie wymyślił to nic się nie zmienia, albo mam error #500.

1 użytkowników online, w tym zalogowanych: 0, gości: 1