【发布时间】:2016-05-08 10:30:12
【问题描述】:
我已经经历了很多关于这个的话题,但仍然无法正常工作,所以我想知道你是否可以帮助我看看我做错了什么。
我的目标是在没有 app.php 或 web 的情况下拥有整洁的 URL,如 www.name.com,我已经一遍又一遍地更改了我的 Virtualhost 和 Htacces,我的页面现在已经消失了^^(是的,所以亲)
首先,我启用了 rewrite mod,并且我运行的是 2.2.2 apache 版本。
这是我的 VirtualHost 文件:
<VirtualHost *:80>
ServerName steeph
ServerAlias name.com
DocumentRoot /home/ksc/www/symfony/web
<Directory /home/ksc/www/symfony/web>
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/project_error.log
CustomLog /var/log/apache2/project_access.log combined
</VirtualHost>
我也尝试过在线:
<Directory "path">
DirectoryIndex app.php
Options -Indexes
AllowOverride All
Allow from All
</Directory>
它们也不起作用
对于我的 htaccess,我尝试了 symfony 文件根目录(并从虚拟主机中删除 /web),但失败了,我尝试使用这个 htaccess
<IfModule mod_rewrite.c>
RedirectMatch permanent ^/app\.php/(.*) /$1
RewriteEngine On
RewriteBase /web/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
我尝试使用“RedirectMatch 永久 ^/app.php/(.*) /$1”,但没有
所以我一直喜欢十几个 stackoverflows,我尝试了甚至不是流行的答案,但它仍然无法正常工作,所以我非常感谢这里的一些帮助
非常感谢!
【问题讨论】:
-
您希望路由
mysite.com/app/whatever成为mysite.com/whatever吗?因为如果是这样的话,symfony 就已经在你生产时为你做了这件事。您可以查看they say about it 的内容。我想我的评论是,最后,你问的不是很清楚。如果您能告诉我们您当前的 URL 是什么以及您希望它是什么样子,那将是一个巨大的帮助。 -
mysite.com/whatever 我检查了这个页面,但我看到“使用 Apache 路由器不再被认为是一种好的做法”,所以我不确定我是否应该遵循这一点。最后一点,我尝试使用 web 文件夹中的“提供” .htaccess,但它也不起作用 ^^(哦,我已经清除了我与 php app/console cache:clear 的聊天),还尝试了 rm -rf app/cache/* (+ 日志)
-
是的,最终只有应用程序的常规路由器才能完成此操作。我认为这是在 Symfony 2 中引入的,可能更早。您可以在routing 页面上查看它是如何完成的。他们没有真正指出的一件事是您可能需要使用
php app/console cache:clear清除缓存。这让我以前很头疼。 -
我认为this answer 可以帮助你。
标签: php apache .htaccess symfony