1

我知道那里有几篇关于此的文章,但是当涉及到 .htaccess 文件中的重定向时,我是新手,所以请原谅我的无知!我已经尝试了一些事情,但我无法让它发挥作用。

我有旧网址http://domain.com/ourlocations.asp?cat=41&id=41我试图在 .htaccess 中重定向到http://domain.com/locations。第一个/旧网址通过二维码包含在打印工作中,所以我有点卡住了。我试过使用简单的 Redirect 301 但没有运气。我看过一些关于使用 RewriteRule 的帖子,但我在 .htaccess (WordPress) 中有现有代码,并且害怕更改以防它关闭网站。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

有没有人有任何想法?谢谢你的时间。

4

3 回答 3

1

RewriteRule应将http://domain.com/ourlocations.asp?cat=41&id=41重定向到http://domain.com/locations

  • RewriteCond指令检查查询字符串参数。
  • 如果您在,则RewriteRule的第一部分匹配/ourlocations.asp
  • RewriteRule?替换部分的尾随删除所有查询参数(如果您希望传递参数,请将其删除)
  • [R=301]告诉 Apache 执行 301 重定向

-

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteCond %{QUERY_STRING} cat=41
RewriteCond %{QUERY_STRING} id=41
RewriteRule ^ourlocations\.asp http://domain.com/locations? [R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>
于 2013-03-13T13:19:45.653 回答
0

感谢大家的帮助,最后玩弄我们得到了解决方案:

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /

RewriteRule ^ourlocations\.asp http://domain.com/locations? [L,R=301]

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>
于 2013-03-15T09:45:27.060 回答
-1

另一个可以解决的解决方案:

添加后# END WordPress

RedirectMatch 301 /index.asp(.*) http://www.domain.com/$1

例子:

www.domain.com/index.asp/string=test&url=22

将重定向到:

www.domain.com/string=test

现在需要像这样写301:

RewriteCond %{QUERY_STRING} ^string=test&url=22$
RewriteRule ^$ http://www.domain.com/requiredPage/? [R=301,L]

现在 url:www.domain.com/index.asp/string=test&url=22将 301 到www.domain.com/requiredPage/

于 2016-07-25T09:33:52.960 回答