为隐藏重定向的子域重写URL



我正在使用symfony框架进行一些PHP开发,它对不同的站点使用相同的代码库。这需要我做一些htaccess重写,这给我带来了一些痛苦。

developer.mysite.com的主索引页是developer.php。我试着把所有从developer.mysite.comwww.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目录

最新更新