这是我的.htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^[0-9]+(/)?$ /hello.php [R=301]
localhost / 123按预期重定向到localhost / hello.php。
但: localhost / 123 ....和localhost //// 123 ////也重定向到localhost / hello.php。
发生了什么事?
答案 0 :(得分:0)
我无法用句点重现问题。但是,对于斜杠,如果它们不创建层次结构,Apache就会表现得好像只有一个斜杠。因此////123///
变为/123/
。 (见Stack Overflow - Why is Apache removing multiple slashes)。我建议您将重写更改为以下内容,因为您无需捕获斜杠以供重用。
RewriteRule ^[0-9]+/?$ /hello.php [L,R=301]
如果你决定要一起消除尾随斜杠,那么这也是可能的:
RewriteRule ^[0-9]+$ /hello.php [L,R=301]