.htaccess: Slugs and file extensions



我正在寻找一种禁用对文件访问的方法,如果无法通过slug访问。例如,我有/members.php?page=login。我想通过强迫用户访问/login(将长URL重定向到一个短slug)并防止从长URL直接访问。

将其更改。

当我尝试做类似:

的事情时
RewriteRule ^members.php?page=login login [L,R=301]
RewriteRule ^login members.php?page=login [L]

它变成了一个无限的循环(正如Firefox所说:" Firefox已检测到服务器正在以永远无法完成的方式重定向此地址的请求。")。

我在文件开头启用了"选项"(Options +FollowSymLinks -MultiViews

我该怎么做对吗?

谢谢。

您可以使用以下内容:

RewriteEngine on
# externally redirect "/members.php?page=login" to "/login"
RewriteCond %{THE_REQUEST} /members.php?page=login [NC]
RewriteRule ^ /login [L,R]
#rewrite "/login" back to "/members.php?page=login"
RewriteRule ^login members.php?page=login [L]

尝试以下:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^login$ index.php?page=login [L]

最新更新