如果包含变量?tag = xxx,则使用mod_rewrite重写URL 301

时间:2011-08-07 23:35:58

标签: mod-rewrite seo http-status-code-301

当一个特定变量在动态URL中的某个地方时,我似乎无法运行301重定向并重写。

例如,使用以下任何网址:

/movabletype/mt-search.cgi?tag=SOMETHING&limit=20
/some-other-random-content?post=somethinghere&tag=SOMETHING

如果 tag=SOMETHING 位于网址内的任何位置,则会重定向到: 的 /categories/something_here/

任何想法?!这就是我到目前为止所做的事情 - 我对RewriteCond中的内容感到茫然

RewriteCond %{REQUEST_URI}
RewriteRule tag=SOMETHING /categories/something_here/ [L,R=301]

1 个答案:

答案 0 :(得分:0)

您的重写条件需要左手和右手参数。看起来您想要在存在某个URL参数时重定向(即标记),因此您可以在条件中使用%{QUERY_STRING}

考虑以下示例:

RewriteCond %{QUERY_STRING} tag=([A-Za-z0-9]+)
RewriteRule ^(.*)$ /categories/$1 [R=301,L]

这应该采用/some-other-random-content?post=somethinghere&tag=SOMETHING之类的网址,并将其重定向到/categories/SOMETHING

URL Rewriting for Beginners可能是一个有用的指南。