【发布时间】:2015-04-03 14:27:46
【问题描述】:
我正在尝试创建一个 Apache 重写规则,该规则将删除 Silex 应用程序的部分 URL。我想在 Apache 中只保留一个虚拟主机,因此使用虚拟主机不是解决方案。 Apache 中的 DocumentRoot 是 /var/www/ ,Silex index.php 是 /var/www/ROR_V2/web/
我想要的是有这个网址:http://my-site.org/ROR_V2/user/login
在我的 Silex 应用程序中指向这条路线:/user/login
我试过了,我失败了,我不明白。
我的 Apache conf 文件(我没有使用 .htaccess)如下所示:
DocumentRoot /var/www
<Directory /var/www/ROR_V2>
Options -Indexes
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
Require all granted
RewriteEngine On
RewriteBase /web
LogLevel warn rewrite:trace8
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ROR_V2/(.*) $1
RewriteRule ^ index.php [QSA,L]
</Directory>
我得到了一个
在此服务器上找不到请求的 URL /web/index.php。
在这里和那里找到的其他答案没有帮助,所以我决定在这里问这个问题。提前感谢您的帮助。
编辑:所以我最终做的是在 Silex 路由中对 URL 进行硬编码,使其成为以下形式的配置参数:$app['BASE_URL']='ROR_V2'
当我在我的产品服务器上时
$app['BASE_URL']=''
...当我测试时。
这当然是丑陋和不令人满意的,应该真正属于 Web 服务器配置......
【问题讨论】:
标签: apache mod-rewrite silex