【发布时间】:2013-08-19 08:13:17
【问题描述】:
考虑以下 URL:http://www.myurl.fr/accueil。
这行不通。但是http://www.myrurl.fr/app.php/accueil 确实有效。
我摆脱了 .htaccess 文件,因为我想使用 vhost 文件并依赖 Apache 路由。我的虚拟主机文件如下:
<VirtualHost my.ip.address>
ServerName myurl.fr
ServerAlias www.myurl.fr
DocumentRoot /var/www/mysite/web
DirectoryIndex app.php
<Directory "/var/www/mysite/web">
AllowOverride All
Allow from All
</Directory>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{CONTEXT_PREFIX}/$2 [R=301,L]
RewriteRule .? - [L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ app.php [QSA,L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule .? %{ENV:BASE}app.php [L]
</IfModule>
</VirtualHost>
我已经清除了 Apache 缓存并重新启动了很多次。启用了 urlrewrite 模块。我只是不知道还要检查什么。知道我错过了什么吗?
编辑 由于我正在处理它,这可能是两个 URL 在给定时间都不起作用。我的问题仍然有效。
【问题讨论】:
-
您可以将
AllowOverride All更改为AllowOverride None。不太可能解决您的问题。 -
是的,这不会解决我的问题 :)
标签: php apache symfony url-rewriting