如果我通过在url中键入/?id=some_text
来执行此操作,则index.php脚本可以正常工作,但如果我执行/some_text
则index.php始终接收id以使值“index”。
起初我有RewriteRule ^([^/]+) ?id=$1
但是返回了“内部服务器错误”而不是网页,然后我将其更改为RewriteRule ^([az] +)index.php?id = $ 1并且我停止了恢复错误页面但无论我输入什么
此规则适用于使用MAMP的本地计算机,但当我将其上载到服务器上时,它停止工作。
此文件夹的.htaccess文件仅包含此规则
RewriteEngine on
RewriteRule ^([^/]+) ?id=$1
答案 0 :(得分:1)
我相信它可能会尝试通过index.php进行递归,因为它似乎符合规则。
尝试:
RewriteEngine On
RewriteCond %{REQUEST_URI} !index
RewriteRule ^([^/]+) index.php?id=$1 [L]
RewriteCond是为了确保它不会将规则应用于自身的结果。 [L]是为了确保它不会尝试应用任何其他规则。