2012-02-21 95 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

相关问题