2010-05-28 17 views
7

Muszę wskazać domenę root mojego konta hostingowego w podkatalogu (joomla). Chcę, żeby to było niewidoczne (tzn. Pasek adresu przeglądarki się nie zmienia). Ponadto potrzebuję tego do działania, gdy użytkownik trafi do katalogu głównego lub do podfile/podfolderu.Niewidoczne .htaccess Przekierowanie z/public_html/do/public_html/folder

Próbowałem następujących reguł, które działają indywidualnie, ale nie mogę ich zmusić do współpracy.

Ten działa, gdy nie ma podtekst/podfolder jest określona:

RewriteEngine On 
RewriteRule ^$ /joomla/ [L] 

A ten działa po podtekst/podfolder jest określona:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule (.+)$ /joomla/$1 [L] 

po prostu nie mogę dowiedzieć się, jak je połączyć.

Odpowiedz

3
RewriteEngine On 

RewriteRule ^(.*)$ /joomla/$1 [L] 

Powinien działać (nietestowany). Kluczową różnicą pomiędzy tą a drugą próbą jest + vs *. Znak + będzie odpowiadał jednemu lub więcej, natomiast * będzie pasował do 0 lub więcej, więc powinno to działać również wtedy, gdy nie zostanie podany żaden plik/podkatalog.

+0

Ten jeden zgłasza błąd 500 serwera z lub bez pliku/folderu. Kiedy dodaję "RewriteCond% {REQUEST_FILENAME}! -f", działa z określonym plikiem/folderem, ale generuje błąd 500 bez. – ggutenberg

2

To powinno załatwić sprawę:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /joomla/$1 [L] 

.* również pasujące pusty ciąg. Prawdopodobnie będziesz także chciał wykonać test, aby upewnić się, że nie ma dostępu do istniejącego katalogu (choć myślenie o nim może nie zadziałać z dopasowaniem /, nie wiem).

+0

Działa dla pliku/folderu, ale root nigdy nie przekierowuje. Po prostu podaje mi listę katalogów. Bez linii -d zgłasza błąd 500 po trafieniu w root. – ggutenberg

Powiązane problemy