我读过很多关于这个,但我不能让它工作,所以,我发布提问symfony1,托管,文档根目录和Apache的mod_rewrite
我有一个Symfony1
项目有2个应用程序(前,管理员),托管文档根目录是public_html
,这样的文件夹结构是这样的:
/public_html
|--/apps/
|--/cache/
|........
|--/web/
支持团队告诉我,它们就不能更改文档根目录的我,所以,我必须做开始尝试.htaccess
,这就是我所做的:
RewriteEngine on
AddHandler application/x-httpd-php53 .php
RewriteBase /web/
RewriteCond %{REQUEST_URI} ^/admin.php
RewriteRule ^(.*)$ /web/admin.php/$1 [QSA,L]
RewriteRule ^(.*)$ /web/$1 [QSA,L]
此工程确定,但symfony的与/web
生成的网址,因此,我创建了从0扩展的自定义类,覆盖generate
函数返回是这样的:
public function generate($name, $params = array(), $absolute = false) {
$url = parent::generate($name, $params, $absolute);
$pattern = '/\/web\//';
return preg_replace($pattern,'/', $url);
}
,这再次工程确定,我有漂亮的网址和工作正常,但是,当y试图访问http://my.domain.com/admin.php/
我得到404 Page not found error
和所有的管理应用程序不工作,url /admin.php/services
相同的结果,总是相同的,所以,我重新创建在我的相同环境本地电脑,工作正常,但在托管它不起作用。
因此,我所做的.htaccess配置应该工作?我是否需要更多条件并重写规则以便按照我想要的方式工作?
/web
文件夹中的.htaccess文件夹会影响到吗?
托管是www.bluehost.com
需要一些帮助
感谢
谢谢你的答案,但是,同样的结果,它的工作原理确定为前应用程序,一个想是因为它的前端控制器'index.php',但fontend控制器管理应用是'admin.php',如果没有'/ web /'在url上就根本不起作用。但是这只发生在主机上,因为在我的电脑中按照你给我的规则在本地工作,没问题。任何线索? – 2013-05-06 14:36:45
@ Kstro21尝试我刚添加的编辑。 – Zenexer 2013-05-07 18:55:57