今天我注意到了一个重写规则,下面给出了它。在阅读了关于Apache的文档后,我相信在域名强制重定向到example.com/index.php?slugname
之后重定向任何内容的规则。
这意味着如果我们在浏览器中尝试example.com/abc
,它会重定向到example.com/index.php?slugname
这是对的吗?你能告诉我这条规则到底是什么意思吗?
https://httpd.apache.org/docs/current/rewrite/intro.html
RewriteRule ^([^/\.]+)/?$ index.php?slugname=$1 [L]
答案 0 :(得分:0)
如果example.com/abc
文件位于example.com/index.php?slugname=abc
,但只有.htaccess
之后的字符(在您的情况下为example.com/
,则规则不会将example.com/
重写为abc
{1}},不包含/
或.
。
在旧版本的apache中,它不起作用,因为匹配的sting不是abc
而是/abc
(第一个/
是包含的),因此无法匹配。
它是一个重写,所以从用户的角度来看,浏览器中的URL仍然是example.com/abc
,但在内部就像用户确实请求example.com/index.php?slugname=abc
一样。如果没有其他规则,则两者都应该给出相同的结果。