.htaccess用斜线重写

时间:2017-04-15 21:41:06

标签: apache .htaccess

我正在尝试使用.htaccess

进行网址重写

example.com/daily.phpexample.com/daily(和example.com/daily/

使用以下代码:

Options +FollowSymLinks
RewriteEngine on
RewriteRule daily/$ daily.php

但是:

  • example.com/daily/ = ok
  • example.com/daily =不好

1 个答案:

答案 0 :(得分:0)

RewriteRule daily/$ daily.php

在上面的RewriteRule指令中,daily/$是一个正则表达式(regex),它与请求中的URL路径匹配。此正则表达式包含一个尾部斜杠(/),因此这显然不匹配不以斜杠结尾的URL。

如果您想同时匹配/daily//daily(虽然我不建议这样做 - 请参阅下面的说明),然后您需要在其中设置尾部斜杠可选正则表达式。您可以使用?(问号)跟随此字符,使其成为可选字符。例如:

RewriteRule ^daily/?$ daily.php [L]

我还包含了一个字符串起始锚^,因此它只匹配/daily而不是/<anything>daily。如果您打算添加更多指令,您可能需要Llast)标记。

除了:如果您同时允许/daily//daily,这两个网址在技术上是两个不同的网址,那么您可能会有&#34;重复内容&#34;。您应该选择一个或另一个作为规范URL。并且可选地将非规范版本路由到另一个版本。