Localhost üzerinde geliştirme dizinleri için Apache sitesi kök

1 Cevap php

Ben bir şey eksik düşünüyorum ve ben gerçekten RewriteBase nasıl çalıştığını anlamak sanmıyorum.

Ben sorun ben sitesi kök dizininde bir üretim site var ama ben bir localhost dizininde benim geliştirme sitesi olması. Örnek: http://www.sitename.com/ vs http://localhost/sitename/

Ben örneğin bir resim klasörü varsa ben href ilk çizgi kullanarak site kökünden görüntüleri başvurmak istiyorum. (Başlangıç ​​kesme işareti olmadan) göreli bir href kullanarak örneğin bir seçenek değildir. Bu üretim sitede çalışacak, ancak kalkınma site http://localhost/images/imagename.jpg yerine arıyor http://localhost/sitename / images / imagename.jpg

. Yüzden ben yapmak için gerekli tüm geliştirme ortamı içinde benim altalana site kök zorlamak için benim htaccess dosyasında aşağıdaki kurulum olduğunu düşündüm:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /sitename

Ama bu yine de onun yerine localhost / sitename site kökü olarak localhost kullanır.

Herkes bana bazı işaretçiler verebilir misiniz?

------------------------- EDIT ------------------------ ---

Ben. Htaccess dosyasında bu yapmaya çalışırken durdu ve sadece html komutunu kullanmak için ama bu da işe yaramadı çalıştı.

Sonunda yerel sunucuda Apache Sanal Konaklar kurmak ama sadece site kök değiştirmek için overkill böyle korkunç bir sürü gibi görünüyor. Ben de LAN ağı üzerindeki diğer geliştiricilerin sanal konak üzerinden düzgün siteye erişim mümkün olmayacak endişeleniyorum.

Gerçekten WAMP içinde uygulanabilir bir geliştirme ortamı kurma hakkında bazı 'en iyi uygulama' tavsiyesi lütfen ihtiyacı var.

1 Cevap

RewriteBase yalnız, temelde, Apache söyler nereye RewriteRule s uygulamak. Burada herhangi yok. Arada, tamamen RewriteBase direktifini kaldırabilir, ya onu değiştirin:

RewriteBase /

Aşağıdaki iki satır sizin geliştirme ortamı için işe almak only olmalıdır:

RewriteCond %{ REQUEST_FILENAME } !-f
RewriteRule ^(.+)$ /sitename/$1 [L,QSA]

Bu iki direktif demek: "istenen dosya (-f) var, ve sadece bu durumda, url başa dosya eklemeyi /sitename/ istenen URI yeniden değilse ($1)".

Daha fazla bilgi için, Apache mod_rewrite docs ve Apache URL rewriting guide de bir göz atabilirsiniz.