Перезапись URL для субдомена, скрывающего перенаправление - PullRequest
0 голосов
/ 18 июля 2011

Я использую инфраструктуру 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]

Ответы [ 2 ]

0 голосов
/ 19 июля 2011

Я думаю, что лучше сделать отдельный каталог для вашего приложения.Я привожу пример, как я реализовал эту задачу:

  <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

0 голосов
/ 18 июля 2011

У вас есть псевдоним от 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. Я предполагаю, что у него есть фронт-контроллер, как у многих других фреймворков.

...