1

这是我的.htaccess:

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^[0-9]+(/)?$ /hello.php [R=301]

localhost/123 按预期重定向到 localhost/hello.php。

但是:localhost/123.... 和 localhost////123//// 也重定向到 localhost/hello.php。

这是怎么回事?

4

1 回答 1

0

我无法重现句号的问题。然而,对于斜线,如果它们不创建分层结构,Apache 将表现得好像只有一个斜线。就这样////123///变成了/123/。(请参阅Stack Overflow - 为什么 Apache 删除多个斜杠)。我建议您将重写更改为以下内容,因为您无需捕获斜线以供重用。

RewriteRule ^[0-9]+/?$ /hello.php [L,R=301]

如果您决定要一起消除尾随斜杠,这也是一种可能性:

RewriteRule ^[0-9]+$ /hello.php [L,R=301]
于 2012-10-23T06:00:36.247 回答