Ben Zend Framework 1.9.5 uygulamasında ne için. Htaccess kullanmak gerekir?

2 Cevap php

Ben birkaç Web MVC uygulamalar yazdım ama asla daha önce PHP, ve ben Zend Framework v1.9.5 ile çalışmak için en iyi şekilde anlamaya çalışıyorum.

Zend Framework 1.9.5 uygulama. Htaccess rolü hakkında kafam karıştı. Ben birçok dersler, kitaplar ve Zend Framework (ama çoğu yeni de v1.8 içindir) SO sorular istişare var ve hepsi. Htaccess dosyasının merkezi rolü hakkında konuşmak. Bunu toplamak., Bu v1.9.5 hala gerekli güncel uygulama ise veya htaccess, URL yeniden sanal konakları destekleyen ve Apache index.php geçmeden statik dosyalara hizmet sağlamak için kullanılabilir, ancak ben emin değilim.

Şu anda oldukça basit bir çift (HTML, CSS, jQuery) Zend Framework uygulamalar yazılı ve test Ubuntu Sunucu 9.10 ortamı onlar için Apache sanal konakları oluşturduk. Ben hiç. Htaccess dosyalarını kullanarak yoktu ve uygulamalar iyi iş gibi görünüyor.

İşte ben bugüne kadar ne yaptığını bulunuyor:

Eclipse / FDT ve zf.sh aracını kullanarak benim uygulamalar yaratmıştır. Ben 'zf proje oluşturmak' üretilen kamu dizine css, resim, js ve dizinleri ekledi. Bu uygulamalar benim yerel MAMP kurulumu iyi çalıştırmak.

Sunucuda, I / usr/local/Zend/share/ZendFramework-1.9.5 yılında Zend Framework kurulu ve php.ini içinde 'include_path' için usr/local/Zend/share/ZendFramework-1.9.5/library eklendi / .

Ben sunucu dizinleri / home / myadmin / public_html / etki alanı [12] / com uygulamalar kopyalanan.

I Slicehost Virtual Host Setup belirtildiği gibi Apache mevcut-siteler dizininde girdileri ekleyerek sanal konakları yarattı. Ben DirectoryIndex = index.php ve DocumentRoot = / home / myadmin / public_html / domain [12] / com / kamu atayın. Hem uygulamalar cezası çalışmak gibi görünüyor.

Ben. Htaccess dosyaları kullanmak gerekir mi? Ne için?

*** EDIT - My Solution

Richard'ın linke dayanarak, ben genellikle benim sanal konak tanımı içine. Htaccess yaşayan yeniden yazma ifadeleri taşındı ve şimdi benim uygulamalar. Htaccess dosyasını kullanmayın. Benim domain1.com sanal konak dosya:

<VirtualHost *:80>
  # Define admin email, server name, and any aliases
  ServerAdmin webmaster@domain1.com
  ServerName domain1.com
  ServerAlias www.domain1.com

  # Only serve files from inside this directory
  DocumentRoot /home/myadmin/public_html/domain1.com/public

  # Directly serve any requested files that exist in DocumentRoot;
  # otherwise redirect the request to the index.php script
  RewriteEngine off
  <Location />
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ /index.php [NC,L]
  </Location>

  # Set up log file locations
  LogLevel warn
  ErrorLog /home/myadmin/public_html/domain1.com/data/logs/error.log
  CustomLog /home/myadmin/public_html/domain1.com/data/logs/access.log combined
</VirtualHost>

2 Cevap

VirtualHost yapılandırma ve .htaccess dosya Zend Framework URL rewriting için iki alternatif vardır. Onlar aynı işlevi gerçekleştirmek ve hem ihtiyaç yok.

Yeniden URL sadece index.php olmayan statik dosyalar için tüm istekleri yönlendirir.

Routing istek URI çürüyen ve modül / denetleyicisi / eylem idam edilmelidir hangi sergiyi işlemidir. Bu URL yeniden yazma için ilgili ama ayrı bir işlevdir.

Zend Framework ve çoğu php çerçeveler için. Htaccess biri birincil kullanımı bir önyükleme dosyası (statik dosyaları hariç) tüm isteklerini yönlendirmek. Mutlaka ihtiyacınız yok ama URL için / denetleyicisi / eylem aksine / index.php / denetleyici / eylem gibi bir şey arıyor sona ereceğini

Ayrıca, sadece sizin için apache yapılandırma kuralları yeniden doğrudan ekleyebilirsiniz.