Mod rewrite 如何使用mod_rewrite将symfony2与两个URL一起使用
我希望能够使用两个URL访问我的symfony2应用程序,而无需更改服务器配置。我试图通过使用mod_rewrite来实现这一点,在我的例子中,我希望能够在和访问我的应用程序 .htaccess文件如下所示:Mod rewrite 如何使用mod_rewrite将symfony2与两个URL一起使用,mod-rewrite,symfony,Mod Rewrite,Symfony,我希望能够使用两个URL访问我的symfony2应用程序,而无需更改服务器配置。我试图通过使用mod_rewrite来实现这一点,在我的例子中,我希望能够在和访问我的应用程序 .htaccess文件如下所示: RewriteEngine On RewriteRule ^test/(.*)$ $1 [QSA] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ app.php [QSA,L] 我添加了第2行,第3行和第4行来自sym
RewriteEngine On
RewriteRule ^test/(.*)$ $1 [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
我添加了第2行,第3行和第4行来自symfony2手册。回复是来自symfony的404。现在我的问题是:
1) 是否可以使用mod_rewrite执行此操作2) 如果不是,最好的解决方案是什么 一个选项似乎是创建一个名为“test”的文件夹,并为其提供自己的app_dev.php和.htaccess副本 您可能需要调整最后一行。默认的.htaccess文件不使用%{DOCUMENT\u ROOT},但我的安装程序需要它
RewriteEngine On
RewriteOptions Inherit
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/test/app_dev.php [QSA,L]
然后需要编辑test/app_dev.php,在require语句中添加额外的“./”
对我的一个项目的快速测试表明,这似乎是可行的
更新
我不相信仅仅通过重写规则就可以做到这一点。这是我试图修改web/.htaccess文件以使其正常工作的尝试。我的理解是,如果您请求/test/foo,URL将被重写为内部的/app_dev.php/foo。然而,Symfony查找它试图路由的URL的方式总是会发现URL是/test/foo,我得到一个route not found异常
RewriteEngine On
RewriteOptions Inherit
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^test/(.*)$ %{DOCUMENT_ROOT}/app_dev.php/$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/app.php [QSA,L]
如果我将app_dev.php行添加为使用[QSA,L,R=301],它会将浏览器重定向到/app_dev.php/foo,并提供所需的页面。因为它没有隐藏app_dev.php,所以可能不是您想要的,但它会验证匹配是否正常工作。这似乎无法使用mod_rewrite:有简单的替代方法吗?您找到解决方案了吗?我正在与完全相同的问题斗争,不幸的是,我没有找到一个合适的解决方案。