我已经创建了第一个Symfony应用程序,但url太大了
http://ip address/repair/web/app_dev.php/home
http://ip address/repair/web/app.php/home
我想把它做成http://ip地址/repair/home
这是apache2 的httpd.conf
NameVirtualHost某个ip地址
ServerName"修复">
DocumentRoot "/var/www/repair/web"
<Directory "/var/www/repair/web">
DirectoryIndex app.php
AllowOverride None
Order allow,deny
Allow from All
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
RedirectMatch permanent ^/app'.php/(.*) /$1
</Directory>
symfony的web文件夹中的my.htaccess包含
Options +FollowSymlinks
RewriteEngine On
# Explicitly disable rewriting for front controllers
RewriteRule ^app.php - [L]
RewriteRule ^app.php - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
我已经重新编码了apache2的mod重写太
iam获取错误
在此服务器上找不到请求的URL/repair/home。
Apache/2.2.20(Ubuntu(服务器,ip地址端口80
如果您想通过ip访问网站,您需要将代码复制到"localhost"目录(/var/www,例如(
Apache配置中的AllowOverride None
行导致.htaccess文件被忽略。
如果用AllowOverride All
替换它,Apache将遵循.htaccess文件中的指令。
您可以在此处找到有关AllowOverride的更多信息
仔细检查是否已经为Apache加载了mod重写。在使用Apache2安装Debian6时,该模块是可用的,但没有加载。为了加载它,你可以在mods enabled目录中添加一个符号链接到mods可用目录中的模块,如下所示:
root@server:/etc/apache2/mods-enabled# ln -s ../mods-available/rewrite.load ./rewrite.load
然后你需要重新启动Apache2,让它重新加载配置。在Debian上,这将是sudo service apache2 restart