2010-04-11 13 views
8

Myślę, że to dość proste pytanie.Mod przepisz ukryj folder

W jaki sposób można przepisać apache, aby ukryć folder.

EX: www.website.com/pages/login.php do www.website.com/login.php

lub www.website.com/pages/home.php do www.website.com/ home.php

Folder musi być zawsze ukryty. dzięki

Odpowiedz

12

Zakładam, że chcesz, aby przeglądarka zażądała /home.php, ale serwer rzeczywiście używa pliku znajdującego się w/pages/home.php, prawda? Jeśli tak, to powinno działać:

Upewnij się, że moduł mod_rewrite jest zainstalowany. Następnie użyć czegoś takiego w swoim apache config, wirtualnego hosta lub config (mniej pożądany) plik .htaccess:

RewriteEngine On 
RewriteRule ^/(.*)$ /pages/$1 

Zasady korzystania z wyrażeń regularnych, więc może warto spojrzeć na odniesienie na ten temat, jeżeli nie jesteś pewien. Przeczytaj manual, aby uzyskać więcej informacji na temat innych dyrektyw (opcja RewriteCond może być bardzo przydatna) lub opcji reguł.

0

Jeśli Twój przykład faktycznie odzwierciedla pliki potrzebne, to w pliku .htaccess:

#Options +FollowSymLinks 
RewriteEngine On 

RewriteRule ^/pages/(.+)\.php $1\.php [NC, L] 

Ponadto, jeśli katalog ma uprawnienia do odczytu, nie może być w rzeczywistości „ukryte”. Zakładam, że masz na myśli, że nie pojawia się już w adresie URL.

+1

To też miałem na początku. Ale oznacza to, że użytkownik zobaczył /pages/home.php w pasku adresu, podczas gdy serwer serwowałby do /home.php. Po ponownym przemyśleniu, myślę, że OP chce czegoś przeciwnego ... – grossvogel

+0

@grossvogel - masz rację - ponownie czytam jego pytanie. – TMG

8

Wiem, że oryginalny post był sprzed kilku lat, ale pojawił się pierwszy w wyszukiwarce, więc może to pomoże innym, którzy chcą ukryć nazwę folderu w adresie URL.

Nie dokładnie to, co chciał oryginalny plakat, ale na tej samej linii.

RewriteCond %{HTTP_HOST} ^mydomainname\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.mydomainname\.com$ 
RewriteCond %{REQUEST_URI} !^/subfoldername/ 
RewriteRule (.*) /subfoldername/$1 

Powyższy przykład by przekierować każdą prośbę do mydomainname.com lub www.mydomainname.com do katalogu subfoldername w katalogu głównym domeny, a nazwa podfolder nie pojawiają się w adresie URL.