【问题标题】:301 redirect - Dynamic urls - Keep query strings301 重定向 - 动态网址 - 保留查询字符串
【发布时间】:2015-06-06 23:23:39
【问题描述】:

我在其他地方做了很多阅读,但我仍在努力解决我正在尝试实施的这个新的 htaccess 重定向。我尝试了各种版本的重写,但无法使其正常工作。另外,我仍然对是否应该使用 QSA 感到困惑。

我希望具有动态 url 的旧页面重定向到我设置的新目录/页面。问题是,我不想为我拥有的所有州和国家写一个条目。我想保留现有的查询字符串。

我正在尝试从:

http://example.com/olddir/detailsbyst.php?country=____&state=__&sd=____ 
http://example.com/NEWDIR/detailsbyst.php?country=____&state=__&sd=____

我尝试的最后一个版本是这个

RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteCond %{QUERY_STRING} ^country=([A-Z­a-z­0-9­-]+)$ [NC]
RewriteCond %{QUERY_STRING} ^state=([A-Z­a-z­0-9­-]+)$ [NC]
RewriteCond %{QUERY_STRING} ^sd=([A-Z­a-z­0-9­-]+)$ [NC]
RewriteRule ^olddir/detailsbyst\.php$ http://example.com/newdir/detailsbyst.php [NC,QSA,L,R=301]

在相关说明中,一些旧的动态 url 在查询字符串的末尾有 &desc 而不是 &sd,所以对于这些 url,我想将 &desc 转换为 $sd

谢谢 - 尼克

【问题讨论】:

标签: php regex .htaccess mod-rewrite redirect


【解决方案1】:

如果您只想将/olddir/ 地址重定向到/NEWDIR/,则需要使用单个 RewriteRule:

RewriteRule ^olddir(.*)$ /NEWDIR$1 [NC, L,R=301]

【讨论】:

    猜你喜欢
    • 2014-06-13
    • 2011-04-17
    • 2015-03-30
    • 2010-12-03
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多