.htaccess:无效的命令'RewriteEngine',可能是由服务器配置中未包含的模块拼写错误或定义的

Adh*_*ham 279 apache web

尝试在本地浏览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/
Run Code Online (Sandbox Code Playgroud)

问题是什么 ?

sci*_*uff 445

Apache 2+下,您可以简单地执行以下操作(使用Linux终端):

__CODE__

要么

__CODE__

  • +1,这是一个更好的解决方案,因为它不需要您编辑任何文件,而是使用内置于apache2中的命令. (23认同)

Jon*_*Lin 271

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

检查以确保您已mod_rewrite启用.

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

  1. 找到httpd.conf文件(通常你会在一个名为conf,config或其他东西的文件夹中找到它)
  2. 在httpd.conf文件中取消注释行LoadModule rewrite_module modules/mod_rewrite.so(从行前面删除磅'#'符号)
  3. 同时找到取消注释ClearModuleList行,然后查找并确保没有注释掉AddModule mod_rewrite.c行.

如果LoadModule rewrite_module modules/mod_rewrite.so完全没有从httpd.conf文件中删除该行,只需添加它.

  • @Bader别忘了重启apache (19认同)

Har*_*ker 50

只需按照简单的1-2-3步骤:

1)转到任务栏

2)点击WAMP图标(左键单击)

在此输入图像描述

3)现在转到Apache>服务> Apache模块并检查Rewrite_module是否启用!如果不是那么点击它!WAMP将自动重启,您就完成了!

在此输入图像描述


Law*_*one 13

我可以看到你的使用AppServ,mod_rewrite默认在该WAMP包上被禁用(只需用Google搜索)

解:

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

并取消评论这一行 #LoadModule rewrite_module modules/mod_rewrite.so

重启apache ... Simplez


Vit*_*ich 12

来自verybadbug的评论帮助我:

ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
Run Code Online (Sandbox Code Playgroud)

之后我们需要重启Apache:

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)


小智 5

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

sudo a2enmod rewrite
Run Code Online (Sandbox Code Playgroud)

这将启用重写引擎。之后,在domain.conf目录结构之后的文件中添加以下行 -

RewriteEngine On
Run Code Online (Sandbox Code Playgroud)

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

sudo service apache2 restart
Run Code Online (Sandbox Code Playgroud)