我正在使用symfony框架进行一些PHP开发,它对不同的站点使用相同的代码库。这需要我做一些htaccess重写,这给我带来了一些痛苦。
developer.mysite.com
的主索引页是developer.php
。我试着把所有从developer.mysite.com
到www.mysite.com/developer.php/$1
的式子重写。但是,在url中,我仍然希望它是developer.mysite.com/$1
下面的代码我现在重定向,不保留原来的url:
RewriteCond %{HTTP_HOST} ^developer.mysite.com$ [NC]
RewriteCond %{REQUEST_URI} !..+$
RewriteRule ^(.*)$ http://www.mysite.com/developer.php/$1 [NC,L]
您是否将developer.mysite.com
别名为mysite.com
,或者它是否有自己的public_html(或httpdocs;不管webroot是什么…)文件夹?
我认为最简单的解决方案是将developer.mysite.com
指向服务器上的mysite.com
,以便它们共享相同的public_html文件夹。
- 您的主要网站的前端控制器将是
main.php
之类的东西。 - 开发者子域将有其前端控制器
developer.php
。 -
index.php
将查看$_SERVER['SERVER_NAME']
以确定并包含适当的前置控制器。
免责声明:我不熟悉symfony是如何操作的。我假设它有一个前端控制器就像无数其他框架做的。
我认为最好为我们的应用程序创建单独的目录。我举个例子说明我是如何实现这个任务的:
<VirtualHost *:80>
DocumentRoot "/path/to/poject/web"
ServerName domain.dev
Alias /sf C:/xampp/php/PEAR/data/symfony/web/sf
<Directory "/path/to/poject/web">
#php_admin_value mbstring.func_overload 7
AllowOverride All
Allow from All
</Directory>
<Directory "C:/xampp/php/PEAR/data/symfony/web/sf">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/path/to/poject/web_developer"
ServerName developer.domain.dev
Alias /sf C:/xampp/php/PEAR/data/symfony/web/sf
<Directory "/path/to/poject/web_developer">
#php_admin_value mbstring.func_overload 7
AllowOverride All
Allow from All
</Directory>
<Directory "C:/xampp/php/PEAR/data/symfony/web/sf">
AllowOverride All
Allow from All
</Directory>
Alias /css /path/to/poject/web/css
<Directory "/path/to/poject/web/css">
AllowOverride All
Allow from All
</Directory>
Alias /images /path/to/poject/web/images
<Directory "/path/to/poject/web/images">
AllowOverride All
Allow from All
</Directory>
Alias /js /path/to/poject/web/js
<Directory "/path/to/poject/web/js">
AllowOverride All
Allow from All
</Directory>
Alias /sfDoctrinePlugin /path/to/poject/web/sfDoctrinePlugin
<Directory "/path/to/poject/web/sfDoctrinePlugin">
AllowOverride All
Allow from All
</Directory>
Alias /sfFormExtraPlugin /path/to/poject/web/sfFormExtraPlugin
<Directory "/path/to/poject/web/sfFormExtraPlugin">
AllowOverride All
Allow from All
</Directory>
Alias /uploads /path/to/poject/web/uploads
<Directory "/path/to/poject/web/uploads">
AllowOverride All
Allow from All
</Directory>
</VirtualHost>
web_developer
dir为sf1.4项目常用的web目录