.htaccess &引用;RewriteRule^([^/]+;)index.php?id=$1";职位;索引“;而是输入文本

.htaccess &引用;RewriteRule^([^/]+;)index.php?id=$1";职位;索引“;而是输入文本,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,如果我在url中键入/?id=some_text,index.php脚本将按原样工作,但如果我键入/some_text,index.php将始终接收id以具有值“index” 起初我有RewriteRule^([^/]+)?id=$1,但它返回的是“内部服务器错误”而不是网页,然后我将它改为RewriteRule^([a-z]+)index.php?id=$1,我停止接收错误页面,但不管我键入什么,脚本都开始接收“index”作为值 这个规则在使用MAMP的本地机器上工作,但当我将它上传到服务器

如果我在url中键入
/?id=some_text
,index.php脚本将按原样工作,但如果我键入
/some_text
,index.php将始终接收id以具有值“index”

起初我有
RewriteRule^([^/]+)?id=$1
,但它返回的是“内部服务器错误”而不是网页,然后我将它改为RewriteRule^([a-z]+)index.php?id=$1,我停止接收错误页面,但不管我键入什么,脚本都开始接收“index”作为值

这个规则在使用MAMP的本地机器上工作,但当我将它上传到服务器上时,它停止了工作

此文件夹的.htaccess文件仅包含此规则

RewriteEngine on
RewriteRule ^([^/]+) ?id=$1

我相信它可能试图通过index.php递归,因为它似乎符合规则

尝试:

重写的第二步是确保它不会将规则应用于自身的结果。[L]是为了确保它不会尝试应用任何其他规则

RewriteEngine On
RewriteCond  %{REQUEST_URI}  !index
RewriteRule ^([^/]+) index.php?id=$1 [L]