【发布时间】:2015-07-21 23:52:33
【问题描述】:
我已经完成了 Symfony2 的第一次安装,
php app/console --version
Symfony version 2.0.11 - app/dev/debug
我通过配置我的 apache2 服务器 vhost 将它安装在现有 DocumentRoot 下
<VirtualHost 127.0.0.1:80>
...
DocumentRoot /srv/www/localhost_www
...
<Directory "/srv/www/localhost_www" >
AllowOverride none
Options -ExecCGI +FollowSymLinks +Includes +Indexes +MultiViews
Order Allow,Deny
Allow from All
</Directory>
...
Alias /TESTAPP "/srv/www/TESTAPP/web/"
<Directory "/srv/www/TESTAPP/web/">
Options All
AllowOverride All
Allow from All
</Directory>
Alias /TESTAPP.symfony "/srv/www/TESTAPP/"
<Directory "/srv/www/TESTAPP/">
Options All
AllowOverride All
Allow from All
</Directory>
...
安装成功并成功按照“The Book”构建演示“Hello”应用程序后,如果我在浏览器中导航到任何/全部,
dev:
http://localhost/TESTAPP.symfony/web/app_dev.php/hello/ME
http://localhost/TESTAPP/app_dev.php/hello/ME
prod:
http://localhost/TESTAPP.symfony/web/app.php/hello/ME
http://localhost/TESTAPP/app.php/hello/ME
我看到了预期,
“你好!”
我想仅重写生产 URL,隐藏“app.php”,以便以下 URL 集在我的 Symfony2 应用程序的浏览器导航栏中工作:
dev:
http://localhost/TESTAPP.symfony/web/app_dev.php/hello/ME
http://localhost/TESTAPP/app_dev.php/hello/ME
prod:
!! http://localhost/TESTAPP.symfony/web/hello/ME
!! http://localhost/TESTAPP/hello/ME
iiuc,默认web/.htaccess
cat web/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
需要改变。
我在文档和网络上进行了研究,尝试了不同的建议来修改 RewriteRule、添加“永久重定向匹配”等,但我没有找到一个简单的方法
http://localhost/TESTAPP/hello/ME
永远工作。我似乎总是需要添加“/app.php/”。
为了让它发挥作用,我需要做出哪些具体的改变?
谢谢。
@chasen
是否为 apache 启用了 mod_rewrite?
是的
如果您的网络目录中有 .htaccess 文件
我愿意
并且你的宿主文件指向 web 文件夹
如上,
Alias /TESTAPP "/srv/www/TESTAPP/web/"
<Directory "/srv/www/TESTAPP/web/">
应该不需要app.php。
那是我的问题。没有它,它对我不起作用。
具体来说,
https://localhost/TESTAPP/app.php/hello/ME
返回:
“你好!”
但是
https://localhost/TESTAPP/hello/ME
返回
Object not found!
The requested URL was not found on this server.
If you entered the URL manually please check your
spelling and try again.
If you think this is a server error, please contact
the webmaster.
Error 404
【问题讨论】:
标签: mod-rewrite symfony