Apache URL重写

Apache URL重写,apache,symfony,url-rewriting,Apache,Symfony,Url Rewriting,我可以访问我的php symfony 2应用程序URL,如下所示: http://localhost/jba/php/web/app_dev.php/login 我想把它缩短,这样当浏览器请求时 http://localhost/login 它显示原始页面。我试过: RewriteEngine On RewriteRule ^(.*)$ jba/php/web/app_dev.php/$1 但它不起作用(只是说“找不到”)。重写日志说: (2) init rewrite engine wi

我可以访问我的php symfony 2应用程序URL,如下所示:

http://localhost/jba/php/web/app_dev.php/login
我想把它缩短,这样当浏览器请求时

http://localhost/login
它显示原始页面。我试过:

RewriteEngine On
RewriteRule ^(.*)$ jba/php/web/app_dev.php/$1
但它不起作用(只是说“找不到”)。重写日志说:

(2) init rewrite engine with requested uri /login
(1) pass through /login

正确的重写规则是什么

试试这个,让我知道它是否适合你

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)/?$ jba/php/web/app_dev.php/$1 [L]
试一试


您是否考虑过将DocumentRoot设置为jba/php/webIt的vhost用于登录,但对于下一页,再次抛出“未找到”错误。而且,我的css和js文件没有加载;它们位于/var/www/html/jba/php/web/static文件夹中。通常,您必须为所需的某些文件创建重写。一次URL重写并不总能解决所有问题。您可以拥有任意数量的站点,以使您的站点按您的意愿工作。“localhost/a/menu”应该指向哪里?
RewriteEngine On  
RewriteRule ^/(.*)$ /jba/php/web/app_dev.php/$1