[英]mod_rewrite rule using date regex
我正在尝试编写一条规则,当用户键入此url时:
domain.com/09/13/2013/thisIsMyPageTitle
该URL保留在浏览器窗口中,但显示该URL的内容:
domain.com/contentlibrary/thisIsMyPageTitle
这是我目前遇到以下错误的规则:
RewriteEngine On
RewriteRule ^((0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])[- /.](19|20)\d\d[/])$(.*) /contentlibrary/$1 [L]
我正在尝试将日期与正则表达式匹配,并使用第二个包含内容并实际存在的初始URL中的(。*)。
如果您不打算对日期做任何事情,那为什么还要麻烦日期语义呢。 您可以简化正则表达式:
RewriteRule ^[0-9]+/[0-9]+/[0-9]+/([^/]+)/?$ /contentlibrary/$1 [L]
您收到的错误可能是因为您的正则表达式中有未转义的空格。 特别是这些:
[- /.]
空格由mod_rewrite解释为参数之间的分隔符。 此外,您有:
$(.*)
在图案的结尾。 $
与字符串的末尾匹配,因此您希望将它们交换:
(.*)$
所以:
^((0[1-9]|1[012])[-\ /.](0[1-9]|[12][0-9]|3[01])[-\ /.](19|20)\d\d[/])(.*)$
保持您想要的模式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.