我想让htaccess匹配年份,然后动态地重写页面
例如www.website.com/party/2013至www.website.com/events.php?e=party
我试过
Options +FollowSymLinks
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{REQUEST_URI} events
RewriteRule ^(\w+)/%year%$ ./events.php?e=$1
但这不起作用
答案 0 :(得分:1)
如果您REQUEST_URI
对events
进行检查,则永远不会匹配,因为这是您的目标网址,而不是您的来源。当前年份为TIME_YEAR
而不是year
,但TIME_YEAR
仅适用于RewriteCond
。您的目标网址以点开头,无法使用。
删除RewriteCond %{REQUEST_URI} events
。如果要检查当前年份的URL,可以使用RewriteCond
指令进行检查。
RewriteCond %{TIME_YEAR}/$2 (....)/\1
RewriteRule /(\w+)/(\d\d\d\d) /events.php?e=$1
RewriteCond针对模式current year/URL year
测试(digits)/same digits as backreference
。这有点棘手,但它确实有效。