URL重写隐藏重定向的子域

时间:2011-07-18 19:32:07

标签: php apache mod-rewrite symfony1

我使用symfony框架进行一些PHP开发,它为不同的站点使用相同的代码库。这需要我做一些htaccess重写,这让我有些痛苦。

developer.mysite.com的主要索引页面为developer.php。我尝试的是重写developer.mysite.comwww.mysite.com/developer.php/$1的所有内容。但是,在网址中,我仍然希望它说developer.mysite.com/$1

以下代码我现在重定向并且不保留原始网址:

RewriteCond %{HTTP_HOST} ^developer\.mysite\.com$ [NC]
RewriteCond %{REQUEST_URI} !\..+$
RewriteRule ^(.*)$ http://www.mysite.com/developer.php/$1 [NC,L]

2 个答案:

答案 0 :(得分:0)

您是将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的运作方式。我假设它有一个像许多其他框架一样的前端控制器。

答案 1 :(得分:0)

我认为最好为你的应用程序制作单独的目录。 我举例说明了我是如何实现这一任务的:

  <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项目的常用网站目录