将具有不同值的查询字符串URL重定向到新URL

时间:2015-07-19 19:05:04

标签: regex apache .htaccess mod-rewrite redirect

我需要将包含查询字符串的页面的请求永久重定向到新页面,以便:

http://www.example.com/photos/showimage.php?id=148 要么 http://www.example.com/photos/showimage.php?id=148&p=5

...将被重定向到:

http://www.example.com/photos/

" id"将始终请求参数,尽管" p"有时只会请求参数。

" id"和" p"查询字符串末尾的值可以是任何整数。

我还需要重定向这些:

http://www.example.com/photos/showcat.php?category=Exhibition%252BImages%25

...到同一个网址:

http://www.example.com/photos/

此查询字符串末尾的值可以是任何值。

我已经查看了此类重定向的各种示例,但它们似乎都处理了对我不起作用的特定形式。

1 个答案:

答案 0 :(得分:0)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On

RewriteCond %{QUERY_STRING} (^|&)id=[^&]+ [NC]
RewriteRule ^photos/showimage\.php$ /photos? [L,NC,R=301]

RewriteCond %{QUERY_STRING} (^|&)category=[^&]+ [NC]
RewriteRule ^photos/showcat\.php$ /photos? [L,NC,R=301]