apache - 如何根据查询字符串重定向URL?

标签 apache .htaccess mod-rewrite redirect

我成功地将Wordpress网站大规模迁移到Drupal。不幸的是,在Wordpress中,内容URL类似于www.example.org/?p=123。我的域仍然相同,但是我想通过htaccess进行重定向,因为Drupal不允许将URL设置为www.example.org/?p=123。换句话说,内容没有与Wordpress中相同的URL。例如,新的Drupal URL将类似于www.example.org/content/MyNewPage

我在.htaccess文件中尝试了此操作,但它不起作用

Redirect 301 /\?p=375 http://www.example.org/content/MyNewPage


所以我尝试了下面的方法,但是它也不起作用。

Redirect 301 /\?p\=375 http://www.example.org/content/MyNewPage


只是作为测试,我尝试了以下方法,但仍然有效。

Redirect 301 http://www.example.org http://www.google.com


我确保我的重定向规则位于.htaccess中列表的顶部,因此将首先对其进行评估。我该如何解决?

最佳答案

Redirect和RedirectMatch都不允许您为重定向源指定查询字符串。 [Source]

您必须使用mod-rewrite基于查询字符串进行重定向:

RewriteCond %{QUERY_STRING}  ^p=375$
RewriteRule (.*)  http://www.example.org/content/MyNewPage?  [R=301,L]

关于apache - 如何根据查询字符串重定向URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13073253/

相关文章:

linux - htaccess 上带有 % 百分比标记的 URL 的 301 重定向

apache - Hive中的子查询-获取错误 “only subquery expressions that are top level conjuncts are allowed”

php - Apache 和 Terminal 在 Mac OS 10.8 上运行 2 个不同的 php 构建

php - htaccess 将通配符子域重定向到 https(包括 www)

apache - htaccess - 重定向到子文件夹,但保留对上层文件夹的访问权限

java - Apache Tomcat - 简单的 jar 文件部署

apache - 在 .htaccess 中设置 Content-Security-Policy header 时出现 500 Internal Server Error

.htaccess - htaccess 排除特定目录

php - 配置 xampp 服务器 httpd.conf

php - CodeIgniter .htaccess index.php 重写不适用于用户目录