Php 尝试重写.htaccess中的URL时发生500内部服务器错误

Php 尝试重写.htaccess中的URL时发生500内部服务器错误,php,.htaccess,mod-rewrite,url-rewriting,Php,.htaccess,Mod Rewrite,Url Rewriting,我需要你的帮助,在创建搜索引擎优化收益动态网址。。我尝试在当前URL上实现以下.htaccess。但是我得到一个500内部服务器错误 请问问题出在哪里? 谢谢 链接 http://127.0.0.1/index.php?id=1 .htaccess RewriteEngine on RewriteRule ^index/([a-zA-Z0-9]+)/$ index.php?id=$1 Apache错误日志 “RewriteEngine”命令无效,可能拼写错误或由服务器配置中未包含的模块定义

我需要你的帮助,在创建搜索引擎优化收益动态网址。。我尝试在当前URL上实现以下.htaccess。但是我得到一个500内部服务器错误

请问问题出在哪里? 谢谢

链接

http://127.0.0.1/index.php?id=1
.htaccess

RewriteEngine on
RewriteRule ^index/([a-zA-Z0-9]+)/$ index.php?id=$1
Apache错误日志

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

将您的规则替换为

RewriteRule ^index/([a-zA-Z0-9]+)/$ index.php?id=$1 [L]
a-Z
不像人们想象的那样工作,而且
a-Z
很奇怪。这就是抛出错误的原因


另外,添加
[L]
标志可防止进一步重写。

您需要安装。

规则看起来很好。检查您的服务器日志(Linux上的
/var/log/apache2/error.log
)-将有一个条目,因为它是一个500错误。可能是一些配置问题。哦,等等,你有
a-Z
a-Z
-这很奇怪。放置
a-zA-Z
如果您发布了正在重写的URL,这也会有所帮助,而不仅仅是结果应该是什么。我想知道服务器配置中未包含的模块定义的含义是什么?重写日志显示未启用/安装mod_rewrite。规则看起来不错,尽管您可能需要
选项-Multiviews
才能正常工作。不,这里没有循环-如果后面有斜杠,他的规则只会替换
索引
。此外,您可能指的是
%{REQUEST\u URI}
,而不是
%{REMOTE\u HOST}
:)我完全重写了我的答案。可能你只需要加载它。加载是安装的一部分,不是吗?好的,那么你需要考虑为Apache安装并启用
mod_rewrite
。它应该像
sudoa2enmod mod_rewrite
一样简单。然后在虚拟主机配置文件的目录配置中添加
AllowOverride All
。但这不应强制500 AFIK+我把我的错误指得这么快;-)哦,是的-那不会是500,但规则永远不会匹配:)没问题。没有恶意:)Dude chill和downvote-OP最初没有粘贴错误日志!在回答.htaccess问题时,我通常假设他们已经安装、加载并启用了该模块,除非另有指示。另外,我指出的错误是正确的——即使他启用了mod_rewrite,他的规则也不会起作用。