regex - 301 重定向到带有查询字符串的 URL

标签 regex apache .htaccess mod-rewrite redirect

我正在尝试将一个 URL 重定向到另一个 URL。它们是不同的域,但其 URL 中都有查询字符串。示例 URL 为:

重定向: olddomain/faculty/profile?uID=123

至: 新域/Faculty?id=024

这是我放在 .htaccess 文件中的内容,但它不起作用(所有必需的模块都已安装并激活,因为还有其他没有查询字符串的 301 可以正常工作):

RewriteCond %{HTTP_HOST}  ^www\.olddomain\.tld$ [NC]
RewriteCond %{QUERY_STRING}  ^uID=123$ [NC]
RewriteRule ^faculty/profile$ http://newdomain/Faculty?id=024 [R=301,NE,NC,L]

我做错了什么?

最佳答案

您还需要添加http://:

RewriteCond %{HTTP_HOST} ^www\.olddomain\.tld$ [NC]
RewriteCond %{QUERY_STRING} ^uID=123$ [NC]
RewriteRule ^faculty/profile$ http://newdomain/Faculty?id=024 [R=301,NE,NC,L]

并确保此规则位于顶部,紧邻 RewriteEngine On 下方。

关于regex - 301 重定向到带有查询字符串的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21320275/

相关文章:

apache - open ssl需要提供完整的证书链

apache - 重命名 URL 中的文件(.php 文件)

apache - 重写规则案例 "Internal server error"(里面的 error.log)

Python正则表达式搜索

c++ - 正则表达式迭代器在 Cpp 中不起作用

mysql - 为什么 HTTPD 打开太多文件?

ajax - 将 AJAX 与 .htaccess 重定向的子域一起使用

regex - 自定义获取URL目录函数

python - 使用文件中的正则表达式重新排列字符串

django - 如何在 Web 服务器上设置 PYTHONPATH