当我试图在本地浏览php文件时,我有这个错误

[Fri Apr 13 19:16:40 2012] [alert] [client 127.0.0.1] C:/AppServ/www/hr-website/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration, referer: http://127.0.0.1/

有什么问题吗?


当前回答

或者由服务器配置中未包含的模块定义

检查以确保启用了mod_rewrite。

来自:https://webdevdoor.com/php/mod_rewrite-windows-apache-url-rewriting

找到httpd.conf文件(通常你会在一个叫做conf, config或者类似的文件夹中找到它) 在httpd.conf文件中取消LoadModule rewrite_module modules/mod_rewrite行注释。因此(删除行前的#符号) 另外,找到ClearModuleList未注释的行,然后找到并确保AddModule mod_rewrite.c行没有被注释掉。

如果LoadModule rewrite_module modules/mod_rewrite. exe因此httpd.conf文件中完全没有行,只需添加它。

示例命令

要启用标准ubuntu中的模块,请执行以下操作:

a2enmod rewrite
systemctl restart apache2

其他回答

的注释也确保php已启用

LoadModule php5_module libexec/apache2/libphp5.so

后面的那行

LoadModule rewrite_module libexec/apache2/mod_rewrite.so

确保这两条线都进去

/etc/apache2/httpd.conf

取消注释。

来自verybadbug under question的评论帮助了我:

ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

之后我们需要重新启动Apache:

sudo service apache2 restart

这个错误发生在我身上,因为mod_rewrite没有启用。 启用重写模块后,一切工作正常: https://www.debuntu.org/how-to-enable-apache-modules-under-debian-based-system-page-2/

我可以看到你使用AppServ, mod_rewrite在WAMP包上默认是禁用的(只是谷歌一下)

解决方案:

查找:C:/AppServ/Apache/conf/httpd.conf文件。

取消这一行的注释 #LoadModule rewrite_module modules/mod_rewrite.so

重新启动apache…… Simplez

如果你在Ubuntu上使用PHP-FPM,你可能已经在/etc/apache2/sites-available/domain.conf目录下创建了自己的conf文件 首先检查是否安装并启用了重写引擎。如果未启用,请执行以下命令-

sudo a2enmod rewrite

这将启用重写引擎。 在这之后,在你的domain.conf文件的目录结构-后放入以下一行

RewriteEngine On

最后,不要忘记通过运行以下命令重新启动Apache服务-

sudo service apache2 restart