我们正在将旧版Zend Framework上的旧项目转移到Laravel。为了让生活更轻松,我们考虑同时运行这两个应用程序。
假设我们在Laravel中建立了一个新博客,这是实现这一目标的最简单方法:
http://example.com/blog - >在/var/www/laravel-project/public/index.php中运行index.php http://example.com/something_else - >在/var/www/zend-project/public/index.php中运行index.php
.htaccess解决方案
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^blog/(.+)$ /laravel/public/index.php [NC,QSA,L]
RewriteRule ^assets/(.+) /laravel/public/assets/$1 [NC,QSA,L]
RewriteRule ^images/(.+) /zend/public_html/images/$1 [NC,QSA,L]
RewriteRule ^(.+)$ /zend/public_html/index.php [NC,QSA,L]
答案 0 :(得分:3)
您可以设置一个仅针对特定细分的重写条件,并将其路由到其中一个框架,如下所示(警告:未经测试)......
# Laravel Requests
RewriteCond $1 ^(blog)
RewriteRule ^ laravel/public/index.php [L]
# Zend Requests
RewriteCond $1 ^(something_else)
RewriteRule ^ zend/public/index.php [L]
# Assets
RewriteCond $1 !^(index.php)
RewriteRule ^ all/public/$0 [L]
对于Laravel,你需要改变public / index.php和其他地方的一些路径,以便它知道它在哪里;我认为这对Zend来说也是一样的吗?
答案 1 :(得分:0)
我的解决方案:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^blog/(.+)$ /laravel/public/index.php [NC,QSA,L]
RewriteRule ^assets/(.+) /laravel/public/assets/$1 [NC,QSA,L]
RewriteRule ^images/(.+) /zend/public_html/images/$1 [NC,QSA,L]
RewriteRule ^(.+)$ /zend/public_html/index.php [NC,QSA,L]