【发布时间】:2017-11-15 06:09:03
【问题描述】:
在我的框架中,主页是
http://localhost:8585/web1/dashboard
我想把首页的那个url改成
http://localhost:8585/web1/
RewriteRule ^dashboard(.*)$ $1 和 RewriteRule ^(index)$ /dashboard [L] 我都试过了,但都没用。
【问题讨论】:
在我的框架中,主页是
http://localhost:8585/web1/dashboard
我想把首页的那个url改成
http://localhost:8585/web1/
RewriteRule ^dashboard(.*)$ $1 和 RewriteRule ^(index)$ /dashboard [L] 我都试过了,但都没用。
【问题讨论】:
让我们深入了解您提供的规则!
RewriteRule ^dashboard(.*)$ $1看(.*)点的意思是可以是任意字符(但只能是一个)。所以.* 意味着它可以是很多字符。这通常用于捕获整个请求的 url,没有域。最后的$ 字面意思是主机以请求的url 结尾(记住;那是没有域的)因此没有意义。您应该如何在 301 重定向中使用这些规则:
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
在此示例中,我们重定向访问我们服务器的所有流量,捕获请求的 url 并将其重定向到 example.com,并将捕获的 url 作为参数传递下来 $1。
RewriteRule ^(index)$ /dashboard 我可以通过第二个重写 url 看到你要去哪里。尝试捕获索引组并将其重定向到仪表板。其本身是一种描述它的有效方式,但实施错误。根据我们的第一个解释,(index)$ 组声明请求的 url 必须是 index 否则将不符合此规则。所以..这意味着它从未遇到过,因为网址永远不会只是index。
你必须做的: 如果您只想将仪表板页面重定向到 web1/,请使用如下规则:
RewriteRule ^web1/dashboard/?$ web1/ [NC,L]
此规则适用于将“http://localhost/web1/dashboard”重写为“http://localhost/web1/”。但是,如果仪表板后面的页面也需要重定向,则可以应用此规则:
RewriteRule ^web1/dashboard/(.*)$ web1/$1 [NC,L]
你能看出区别吗? ;-)
一些来源:
【讨论】: