我是服务器管理的新手,但我能够在我的新VPS上运行LAMP设置。我上传了一些可以在我的其他服务器上运行的Web文件,但它们似乎在我的/var/log/apache2/error.log文件中给出了错误:“文件不存在”。主页通过我的脚本加载很好,但其他页面没有。
.htaccess文件代码
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?r=$1 [L,QSA]
我在服务器上启用了mod_rewrite,可以看到它在我创建的phpinfo()页面下运行。根本不知道为什么会出现这个问题。如果我需要发布任何其他内容,请告诉我:)
答案 0 :(得分:42)
您的网站或虚拟主机似乎未获得处理.htaccess
文件的相应权限。您可以通过故意出现语法错误来轻松测试:如果您的站点没有崩溃,则会忽略该文件。
在主httpd.conf
文件中尝试以下内容:
<Directory "/path/to/your/site">
AllowOverride All
</Directory>
......或者这(根据自己的喜好):
<VirtualHost *:80>
AllowOverride All
</VirtualHost>
答案 1 :(得分:10)
当我遇到此问题时,/etc/apache2/sites-enabled/000-default
得到了AllowOverride All
,但/etc/apache2/apache2.conf
的网络Directory
与AllowOverwrite None
的条目相同}}。所以一定要检查两个地方!
答案 2 :(得分:0)
错误:模块重写不存在 2014年2月21日,作者Sharad Chhetri发表评论
在Ubuntu中使用Apache Module时,我在Apache Web Server中发现了重写问题。我尝试启用重写模块,但出现此错误ERROR:模块重写不存在!。在进行故障排除之后,我发现问题出在mod_rewrite模块。
进行更多的故障排除后,发现/ etc / apache2 / mods-available /中缺少rewrite.load文件。
现在,我检查了mod_rewrite.so实际的模块文件,哇,它在那里。
下面给出的是我运行的分步命令来解决此问题。这是我系统中的参考
root @ tuxworld:〜#a2enmod重写
错误:模块重写不存在!
root @ tuxworld:〜#ls -l /usr/lib/apache2/modules/mod_rewrite.so
-rw-r--r-- 1个根root 58728 2020年5月28日/usr/lib/apache2/modules/mod_rewrite.so
root @ tuxworld:〜#
root @ tuxworld:〜#echo“ LoadModule rewrite_module
/usr/lib/apache2/modules/mod_rewrite.so“> /etc/apache2/mods-available/rewrite.load
root @ tuxworld:〜#
root @ tuxworld:〜#a2enmod rewrite启用模块重写。
要激活新配置,您需要运行:
服务apache2重新启动
root @ tuxworld:〜#
此后,我重新启动了apache2服务
sudo服务apache2重新启动