2

如果我通过输入/?id=some_texturl 来执行此操作,那么 index.php 脚本将按原样工作,但如果我这样做,/some_text则 index.php 总是接收到具有值“index”的 id。

起初我有RewriteRule ^([^/]+) ?id=$1但返回“内部服务器错误”而不是网页,然后我将其更改为 RewriteRule ^([az]+) index.php?id=$1 并且我停止接收错误页面但脚本开始接收“索引”无论我输入什么,作为价值

此规则在使用 MAMP 的本地计算机上有效,但是当我将其上传到服务器时它停止工作。

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

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

1 回答 1

1

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

尝试:

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

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

于 2009-01-12T01:27:22.063 回答