如何在PHP Symfony中将不同的服务器名称映射到不同的目录索引?
Symfony使用以下典型的.htaccess文件:如何在PHP Symfony中将不同的服务器名称映射到不同的目录索引?,php,apache,symfony1,Php,Apache,Symfony1,Symfony使用以下典型的.htaccess文件: Options +FollowSymLinks +ExecCGI <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^$ index.html [QSA] RewriteRule ^([^.]+)$ $1.html [QSA] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.
Options +FollowSymLinks +ExecCGI
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
Options+FollowSymLinks+ExecCGI
重新启动发动机
重写规则^$index.html[QSA]
重写规则^([^.]+)$$1.html[QSA]
重写cond%{REQUEST_FILENAME}-F
重写规则^(.*)$index.php[QSA,L]
我把这个作为我的vhost:
<VirtualHost 127.0.0.1:80>
ServerName jobeet.loc
DocumentRoot "C:/wamp/www/jobeet/web"
DirectoryIndex index.php
<Directory "C:/wamp/www/jobeet/web">
AllowOverride All
Allow from All
</Directory>
Alias /sf "C:/wamp/lib/symfony-1.4.1/data/web/sf"
<Directory "C:/wamp/lib/symfony-1.4.1/data/web/sf">
AllowOverride All
Allow from All
</Directory>
ServerName jobeet.loc
DocumentRoot“C:/wamp/www/jobeet/web”
DirectoryIndex.php
允许超越所有
通融
别名/sf“C:/wamp/lib/symfony-1.4.1/data/web/sf”
允许超越所有
通融
上面的工作非常完美,但我想知道如何映射和附加调试url,以便自动为frontend_dev.php文件提供服务,这样我就可以使用url,如:..
而不是
… 映射到框架中的debug.php文件 我尝试添加vhost条目的副本,并简单地将servername和directoryindex更改为
ServerName jobeet.dev
DirectoryIndex前端\ u dev.php
但可以理解的是,这不起作用,因为我相信我需要检查.htaccess中的URL才能做到这一点 有人能就此提供一些建议吗 提前谢谢!
:)我建议您将所有需要的主机(
jobeet.loc
,jobeet.dev
等)映射到SF_DIR/web
,将index.php
设置为DIR index(如您所做),并在该文件中根据$\u服务器['HTTP_HOST']
使用特定的环境运行特定的应用程序
希望我描述的很好,以便清楚地说明问题。首先在当前VirtualHost中添加jobeet.dev作为服务器别名,以便它可以共享相同的主机配置:
<VirtualHost 127.0.0.1:80>
ServerName jobeet.loc
ServerAlias jobeet.dev
DocumentRoot "C:/wamp/www/jobeet/web"
....
现在,您的开发web控制器(frontend_dev.php)将不会显示在自动生成的url中(从link_到()、url_for()等等)
最后,在生产控制器进入游戏之前,为您的开发域设置一个重写规则,将jobeet.dev中的所有内容路由到您的开发web控制器:
RewriteEngine on
...
...
RewriteCond %{HOST_NAME} ^jobeet\.dev$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ frontend_dev.php [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
应该这样做
RewriteEngine on
...
...
RewriteCond %{HOST_NAME} ^jobeet\.dev$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ frontend_dev.php [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]