2012-11-12 6 views
5

Próbuję uruchomić aplikację php inną niż Zend w podkatalogu strony Zend. Chciałbym ominąć aplikację Zend dla wszystkich plików w podkatalogu "/ branches" w .htaccess. Do tej pory żadne z rozwiązań, które znalazłem, nie zadziałało. Oto aktualny plik .htaccess:Korzystanie .htaccess do ominięcia Zend Framework i uruchomienia innej struktury w podkatalogu

RewriteEngine on 
RewriteBase/

# WWW Resolve 
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC] 
RewriteRule ^web/content/(.*)$ http://www.domain.com/$1 [R=301,L] 

# Eliminate Trailing Slash 
RewriteRule web/content/(.+)/$ http://www.domain.com/$1 [R=301,L] 

# Route Requests 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

Może to nawet prowadzić w .htaccess?

+0

Nie widzę tutaj niczego, co wskazuje na to, że próbowałeś przepisać od nowa/powiązanych gałęzi Czy możesz pokazać nam, co próbujesz, ale nie działa? Szukasz prostego przejścia tych żądań, czy też potrzebują one własnej logiki przepisywania? –

+0

Chciałbym przejść przez wszystko w "/ oddziałach". Próbowałem następujące: 'RewriteRule! (Branches) $ index.php - [NC, L]' 'RewriteRule^branches/$ branches/index.php [L, QSA]' 'RewriteRule^blog - [ NC, L] ' i wiele ich odmian. –

Odpowiedz

1

byłem w stanie rozwiązać ten problem bez zmiany .htaccess i zamiast po prostu umieszczając moje podkatalogu wewnątrz „/ treści”.

1

Masz aktualnie:

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

To nie ma sensu, ponieważ RewriteCond podałeś nie w zasadzie nic dla rzeczywistych plików, katalogów zrobić, i dowiązania nie będzie działać. Dzieje się tak dlatego, że po RewriteRule następuje natychmiast reguła przepisania WSZYSTKIEGO na index.php.

Jeśli zamiarem jest skierowanie wszystko, co nie jest prośba do prawdziwego katalogu do pliku index.php, trzeba mieć coś takiego:

RewriteCond %{REQUEST_FILENAME} -s 
RewriteCond %{REQUEST_FILENAME} -l 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ index.php [NC,L] 

I dodać specjalny przypadek ignorowania /branches wystarczy dodać jeden warunek tak:

RewriteCond %{REQUEST_FILENAME} -s 
RewriteCond %{REQUEST_FILENAME} -l 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteCond %{REQUEST_FILENAME} !^branches/ 
RewriteRule ^.*$ index.php [NC,L] 
+1

To jest rzeczywiście domyślny plik Zend .htaccess. Zastosowanie tych zmian powoduje zerwanie aplikacji Zend. –

+0

[NC, L] oznaczałoby, że RewriteRule nie wykonuje żadnych innych reguł, więc tak, oryginalny htaccess Ryana działa. –