我觉得我的Rewriterules有点多余。有没有办法缩短以下htaccess代码,进入一行?我认为它会在某个地方使用*,但我无法弄明白xD
RewriteRule ^([^/\.]+)?$ index.php?year=$1 [L]
RewriteRule ^([^/\.]+)/?$ index.php?year=$1 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)?$ index.php?year=$1&month=$2[L]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?year=$1&month=$2[L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)?$ index.php?year=$1&month=$2&day=$3[L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?year=$1&month=$2&day=$3[L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)?$ index.php?year=$1&month=$2&day=$3&post=$4[L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?year=$1&month=$2&day=$3&post=$4[L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)?$ index.php?year=$1&month=$2&day=$3&post=$4&action=$5 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?year=$1&month=$2&day=$3&post=$4&action=$5 [L]
谢谢!
目前,php脚本检查是否设置了每个GET参数,并且根据可用的参数,它执行不同的任务。我的PHP代码运行完美,没问题,但我只是想知道是否有办法缩短上面的apache规则。我也意识到这种解析GET参数的方式可能会产生很多漏洞,所以我很感激任何建议或反馈! :)非常感谢^ _ ^
答案 0 :(得分:1)
你想要一切都转到index.php?
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteRule . index.php$1 [L,NC]
</IfModule>