2012-11-12 13 views
5

Zend sitesinin bir alt dizininde Zend olmayan bir php uygulaması çalıştırmaya çalışıyorum. .htaccess'te '/ branch' alt dizinindeki tüm dosyalar için Zend uygulamasını atlamak istiyorum. Şimdiye kadar bulduğum çözümlerin hiçbiri işe yaramadı. İşte geçerli .htaccess dosyası:Zend Framework'ü atlamak ve alt dizinde farklı çerçeve çalıştırmak için .htaccess'i kullanma

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] 

Bu, hatta .htaccess'te yapılabilir mi?

+0

Burada/dalları ile ilgili herhangi bir yeniden yazma kuralını denediğinizi gösteren bir şey göremiyorum Çalıştığınız şeyi denemediğinizi bize gösterebilir misiniz? Bu taleplerin düz bir geçişini mi arıyorsunuz yoksa kendi yeniden yazma mantığına mı ihtiyaçları var? –

+0

'/ dallar' içindeki herhangi bir şeyden düz geçiş yapmak istiyorum. Aşağıdakileri denedim: 'RewriteRule! (Dalları) $ index.php - [NC, L]' 'RewriteRule^dalları/$ dalları/index.php [L, QSA]' 'RewriteRule^blog - [ NC, L] ve bunlar üzerinde birçok varyasyon. –

cevap

1

Ben .htacces değiştirmeden bu çözmek ve bunun yerine sadece '/ içeriği' içinde benim alt dizini yerleştirerek başardı.

1

Şu anda var:

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

Bu RewriteCond olarak temelde gerçek dosyalar, dizinler için bir şey yapamaz için belirttiğiniz hiç mantıklı ve sembolik bağların çalışmayacağını asla. Bunun nedeni, RewriteRule öğesinin, hemen herşeyi index.php'ye yeniden yazmak için kural tarafından izlenmesidir. Eğer niyet index.php dosyanın gerçek dizine bir talep değil her şeyi yönlendirmek ise

, böyle bir şey olmalıdır:

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

Ve /branches görmezden özel bir durumunu eklemek için aynen böyle bir koşul ekleyin:

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

Bu aslında varsayılan Zend .htaccess. Bu değişiklikleri uygulamak Zend uygulamasını bozar. –

+0

[NC, L], RewriteRule'un başka kurallar yürütmediği anlamına gelir, bu nedenle, Ryan'ın orijinal htaccess'i çalışır. –

İlgili konular