2012-02-21 96 views
0

我必須和別人的幾個PHP項目一起工作,這些項​​目的硬編碼路徑必須將我的/var/www/目錄中的每個項目一次一個地運行 - 而不是在它的自己的子目錄,如/var/www/project_namePHP項目需要在www根目錄中放置 - 如何使用.htaccess修復?

有沒有辦法解決這個問題,所以我不必把每個項目直接放在我的webroot目錄中?必須這樣做,我只能使用本地LAMP服務器一次處理一個項目!

編輯:爲了做到這一點「VirtualHost」的方式,我的ServerName將爲project_name?我試過project_name,但這似乎不起作用。

+0

好的,在編輯好正確的'hosts'文件後,使用vhosts'project_name'工作。多謝你們! – 2012-02-21 14:41:42

回答

1
  • 添加

這樣的事情你hosts文件

localproject1 127.0.0.1 
localproject2 127.0.0.1 
... 
  • 在Apache中創建虛擬服務器,爲他們每個人,每個都有自己的根目錄 (什麼可能更重要)日誌文件。通過http://localproject1http://localproject2

  • 瀏覽他們,...

+0

呃..沒有想過要使用vhosts!謝謝,我會給這個鏡頭! – 2012-02-21 11:37:45

+0

@Eugen:引用'man 5 hosts'「對於每個主機,一行應該出現以下信息:'IP_address canonical_hostname [aliases ...]'」in otherwords正確的語法是'127.0.0.1 localhost localproject1 localproject2 ',但一般的建議是好的。 – TerryE 2012-02-21 12:46:48

+0

Eugen忽略但暗示的一點是您可以在每個vhost配置中分配單獨的文檔根目錄。 – TerryE 2012-02-21 12:48:53

0

基本上你有很多選擇,如果你想使用你每次需要修改hosts文件,使了NameVirtualHost和使用項目不同的URL虛擬主機。 另一種方式是通過將每個項目在/ var/WWW/PROJECT_NAME並設置你的.htaccess重寫基地的每個文件夾,如下所示,這樣你就可以使用絕對路徑,該項目將不會打破

RewriteEngine On 
RewriteBase /var/www/project_name 
+0

如果我理解正確,用虛擬主機,我將'http:// localproject1'作爲我的URL,並使用'.htaccess'方式,將有'http:// localhost/project1'。這只是一個優先權問題? – 2012-02-21 12:32:30

+0

@Alfonso - 壞建議:閱讀[RewriteBase文檔](http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase)。參數在URI命名空間而不是文件名空間中,所以在這種情況下,在/ var/www/.htaccess中應該是「/」,如果在/ var/www/project_name /中,則應該是「/ project_name」。 htaccess'。 – TerryE 2012-02-21 12:42:46

+0

這是首選項,我更喜歡爲每個項目使用不同的URL,因此如果您將其移動到不同的服務器,則可以確定該網站不會中斷。 @TerryE謝謝,我一直對此感到困惑 – Alfonso 2012-02-21 12:56:08

相關問題