我想使用mod_rewrite。我在/var/www/.htaccess这段代码
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
#AllowOverride All
#Allow from All
#RewriteBase /WorldClock
#RewriteBase WorldClock/web/app.php
# Explicitly disable rewriting for front controllers
RewriteRule ^/web/app_dev.php - [L]
RewriteRule ^/web/app.php - [L]
# Fix the bundles folder
#RewriteRule ^(.*)$ WorldClock/web/app.php/test [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
# Change below before deploying to production
RewriteRule ^(.*)$ WorldClock/web/app.php [QSA,L]
#RewriteRule ^(.*)$ WorldClock/web/app_dev.php [QSA,L]
</IfModule>
如果行是注释,则表示它是内部服务器错误
我的项目在/var/www/WorldClock/..
文件夹中,css | js | img我转移到/var/www
如果我尝试进入localhost
那么它可以正常工作。但是,如果我点击链接并获取此http://localhost/info/12
的网址,那么我就会
Not Found The requested URL /info.xml/12 was not found on this server.
没有.htaccess,一切正常。 mod_rewrite在phpinfo()中打开;我使用symfony2和Ubuntu
答案 0 :(得分:0)
为了让我们能够提供帮助,我们至少需要您的网络服务器配置。我认为这只是Web服务器未正确配置的问题。如果我的答案是关闭的,请用有意义的错误消息更新你的问题,即检查你的error.log和更详细的描述哪些路由有效,哪些没有,因为我不完全确定你是否可以访问localhost并查看默认的“It work's”页面或项目的首页以及您是否可以访问您的资产?
只需在worldclock.conf
中创建一个新文件/etc/apache2/sites-available/
:
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/WorldClock/web
<Directory /var/www/WorldClock/web>
# enable the .htaccess rewrites
AllowOverride All
Order allow,deny
Allow from All
</Directory>
</VirtualHost>
现在您只需启用新的虚拟主机并重新启动Web服务器:
sudo a2ensite worldclock
# When both hosts use localhost as ServerName there might be some problems
# so we'll disable the default host, which we won't need anyway(?)
sudo adissite default
sudo service apache2 restart
如果这只是您的开发环境,您可以使用PHP的内部Web服务器(假设您安装了5.4),这将减轻所需的一些工作,因为您只需要运行:php app/console server:run
以使其运行。然后,您可以通过以下方式访问您的应用:http://localhost:8000
默认情况下。
要找出安装的PHP版本,请在终端中运行:php -v
。