2012-11-12 14 views
5

Sto provando a eseguire un'applicazione php non-Zend all'interno di una sottodirectory di un sito Zend. Mi piacerebbe bypassare l'applicazione Zend per tutti i file all'interno della sottodirectory '/ branches' in .htaccess. Finora nessuna delle soluzioni che ho trovato ha funzionato. Ecco il file .htaccess corrente:Utilizzo di .htaccess per aggirare Zend Framework ed eseguire framework diversi nella sottodirectory

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] 

Questo può essere ottenuto anche in .htaccess?

+0

Non vedo nulla qui che indica che hai provato qualche regola di riscrittura relativa a/rami Puoi mostrarci cosa hai provato che non ha funzionato? Stai cercando un passaggio diretto di quelle richieste, o hanno bisogno della loro logica di riscrittura? –

+0

Mi piacerebbe un passaggio diretto di qualsiasi cosa all'interno di "/ branches". Ho provato il seguente: 'RewriteRule! (Rami) $ index.php - [NC, L]' 'RewriteRule^rami/$ branches/index.php [L, QSA]' 'RewriteRule^blog - [ NC, L] ' e molte varianti su quelli. –

risposta

1

sono stato in grado di risolvere questo senza alterare .htaccess e invece solo mettendo mia directory secondaria all'interno '/ contenuti'.

1

Al momento è:

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

Questo non ha senso, come il RewriteCond è stato specificato a fondo non fare niente per file effettivi, directory e link simbolici non funzionerà mai. Questo perché, quel RewriteRule è seguito immediatamente dalla regola per riscrivere TUTTO su index.php.

Se il vostro intento è quello di dirigere tutto ciò che non è una richiesta di un vero e proprio elenco di file da index.php, si dovrebbe avere qualcosa di simile:

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

e di aggiungere il caso particolare di ignorare /branches basta aggiungere una condizione come questa:

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

Questo è in realtà il valore predefinito di .htaccess. L'applicazione di tali modifiche interrompe l'applicazione Zend. –

+0

Il [NC, L] significherebbe che RewriteRule non esegue altre regole, quindi sì, l'htaccess originale di Ryan funziona. –