1

我的 htaccess 代码似乎有一些问题,我不确定它为什么不工作,诚然我不是专家,所以任何帮助将不胜感激。

我想要实现的是:

www.example.com/job-search.html?jobid=12345

需要重定向到:

www.example.com/jobs/12345

到目前为止,我想出的 htaccess 中的代码是:

RewriteEngine ON
RewriteRule ^/job-search.html\?jobid=(.+) /jobs/$1 [R=301,L]

然而,这对我不起作用,我不知道为什么,有人可以帮忙吗?

4

1 回答 1

0

几个问题。

  1. 如果您使用的是 apache 2.0 或更高版本,则 URI 的前缀(前导斜杠)会在通过重写引擎之前被删除。所以^/你的正则表达式中的 永远不会匹配。您需要删除前导斜杠。
  2. 您无法匹配 a 中的查询字符串(?jobid=12345位)RewriteRule,您必须使用 aRewriteCond并匹配%{QUERY_STRING}变量并使用%反向引用。

所以你想要一些类似的东西:

RewriteEngine On
RewriteCond %{QUERY_STRING} jobid=([^\&]+)
RewriteRule ^job-search\.html$ /jobs/%1 [R=301,L]
于 2012-07-06T06:22:59.607 回答