Apache .htaccess用斜杠重写

Apache .htaccess用斜杠重写,apache,.htaccess,Apache,.htaccess,我正在尝试使用.htaccess 从 example.com/daily.php到example.com/daily(和example.com/daily/) 使用以下代码: Options +FollowSymLinks RewriteEngine on RewriteRule daily/$ daily.php 然而: example.com/daily/=ok example.com/daily=不正常 在上面的RewriteRule指令中,daily/$是一个正则表达式(regex

我正在尝试使用
.htaccess

example.com/daily.php
example.com/daily
(和
example.com/daily/

使用以下代码:

Options +FollowSymLinks
RewriteEngine on
RewriteRule daily/$ daily.php
然而:

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

如果您想同时匹配
/daily/
/daily
(尽管我不建议这样做-请参见下面的注释),那么您需要在正则表达式中选择尾部斜杠。您可以在该字符后面加上
(问号),使其成为可选字符。例如:

RewriteRule ^daily/?$ daily.php [L]
我还包括了字符串锚点的开头,因此它只匹配
/daily
,而不匹配
/daily
。如果您计划添加更多指令,则可能需要
L
last
)标志


旁白:如果您同时允许
/daily/
/daily
,这两个URL在技术上是两个不同的URL,则可能存在“重复内容”。您应该选择其中一个作为规范URL。也可以选择将非规范版本路由到另一个。

“从
example.com/daily.php
example.com/daily
(和
mysite.com/daily/
)”-你的意思是相反的吗?!
RewriteRule ^daily/?$ daily.php [L]