我创建了第一个Symfony应用程序,但是网址太大了
http:// ip address / repair / web / app_dev.php / home
http:// ip address / repair / web / app.php / home
我希望将其设为http:// ip address / 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>
我的.htaccess在symfony的web文件夹中包含
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-Rewrite
我收到错误
在此服务器上找不到请求的URL / repair / home。
Apache / 2.2.20(Ubuntu)服务器,IP地址为端口80
答案 0 :(得分:0)
如果您想通过ip访问网站,则需要将代码复制到“localhost”目录(/ var / www,例如)
答案 1 :(得分:0)
Apache配置中的AllowOverride None
行导致.htaccess文件被忽略。
如果用AllowOverride All
替换它,Apache将遵循.htaccess文件中的指令。
您可以找到有关AllowOverride here
的更多信息答案 2 :(得分:0)
仔细检查你是否真的为Apache加载了mod-rewrite。在使用Apache 2安装Debian 6时,该模块可用,但未加载。为了加载它,你可以在mods-enabled目录中添加一个符号链接到mods-available目录中的模块,如下所示:
root@server:/etc/apache2/mods-enabled# ln -s ../mods-available/rewrite.load ./rewrite.load
然后,您需要重新启动Apache2才能重新加载其配置。在Debian上sudo service apache2 restart