我根据搜索引擎优化的目的为我的/index.php
添加了301重定向。不幸的是,这可以防止任何参数被接受。
example.com/index.php
应重定向到example.com
example.com/index.php?anything
应留在example.com/index.php?anything
example.com/index.php?f=bar&b=foo
应留在example.com/index.php?f=bar&b=foo
我的尝试修复如下:
RewriteCond %{THE_REQUEST} ^.*/index\.php
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)index.php$ /$1 [R=301,L]
答案 0 :(得分:0)
RewriteCond %{THE_REQUEST} \s\/index\.php\s
RewriteCond %{QUERY_STRING} =""
RewriteRule . http://${HTTP_HOST}/ [R=301,L]
答案 1 :(得分:0)
原来,该场景的答案是Deadooshka的答案和POST修复的组合。
RewriteCond %{THE_REQUEST} \s\/index\.php\s
RewriteCond %{QUERY_STRING} =""
RewriteCond %{REQUEST_METHOD} !POST
RewriteRule ^(.*)index.php$ /$1 [R=301,L]