这是我的.htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^[0-9]+(/)?$ /hello.php [R=301]
localhost/123 按预期重定向到 localhost/hello.php。
但是:localhost/123.... 和 localhost////123//// 也重定向到 localhost/hello.php。
这是怎么回事?
这是我的.htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^[0-9]+(/)?$ /hello.php [R=301]
localhost/123 按预期重定向到 localhost/hello.php。
但是:localhost/123.... 和 localhost////123//// 也重定向到 localhost/hello.php。
这是怎么回事?
我无法重现句号的问题。然而,对于斜线,如果它们不创建分层结构,Apache 将表现得好像只有一个斜线。就这样////123///
变成了/123/
。(请参阅Stack Overflow - 为什么 Apache 删除多个斜杠)。我建议您将重写更改为以下内容,因为您无需捕获斜线以供重用。
RewriteRule ^[0-9]+/?$ /hello.php [L,R=301]
如果您决定要一起消除尾随斜杠,这也是一种可能性:
RewriteRule ^[0-9]+$ /hello.php [L,R=301]