【发布时间】:2022-01-23 22:47:13
【问题描述】:
我的 /.htaccess 中有以下条目
RewriteEngine On
RewriteBase /
RewriteRule ^signin.php - [L,gone]
RewriteRule ^sign-in/?$ /signin.php [L]
我想要实现的是允许用户访问/sign-in而不是原始文件/signin.php
我看到了另一个问题,但是当我尝试实现答案时,/sign-in 和 /signin.php 都出现了 gone 错误。
参考问题: Alias within htaccess, and block access to original file? (URL rewriting)
感谢您的帮助。
【问题讨论】:
-
您所描述的原因是重写引擎在向
/sign-in请求的情况下需要两次 次。您需要使用END标志而不是L标志来防止这种情况发生。 -
我问自己:为什么要在此处发送“已消失”的标头?为什么不重定向客户端?
-
@arkascha 在这种情况下我将如何重定向用户?假设用户去了
/signin.php,有没有办法将用户重定向到/sign-in? -
当然有。实际上,这几乎是标准的。 SO 上的数百个现有答案恰恰证明了这一点。
标签: .htaccess