0

我有以下不起作用的 .htaccess:

RewriteEngine on
RewriteBase /
RewriteRule ^find /findgames.php [L]
RewriteRule ^find/ /findgames.php [L]

如果我删除“查找”中的字母“d”,一切都会很好:

RewriteEngine on
RewriteBase /
RewriteRule ^fin /findgames.php [L]
RewriteRule ^fin/ /findgames.php [L]

我错过了什么?是找关键字吗?第二个我连续有字母“find”,我的网站上出现“内部服务器错误”。

4

1 回答 1

1

在您的情况下,这是绝对正确和预期的行为(“内部服务器错误”消息)。尽管即使没有 letter ,您也应该看到相同的错误d

原因——糟糕的匹配模式——这是一种广泛的方式。什么^find意思?这意味着 -- 匹配以find(Apache 去除前导斜杠) 开头的 URL。这将匹配/find,/find//findme- 以及您的目标 - /findgames.php

最有可能(在这种特殊情况下)您有无限的重写循环,Apache 必须在某个时候中断,因此出现错误。您可以检查 Apache 的错误日志以获取确切的错误消息——它会很好地解释它。

在任何情况下——这应该对你有用——它会将请求/find以及/find/(完全匹配)重定向到/findgames.php.

RewriteEngine on
RewriteBase /
RewriteRule ^find/?$ /findgames.php [L]
于 2012-06-03T19:10:21.340 回答