301重定向?和&的.asp

时间:2013-03-13 12:59:12

标签: wordpress .htaccess mod-rewrite redirect

我知道有一些关于这方面的文章,但是当我在.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

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

3 个答案:

答案 0 :(得分:1)

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

  • RewriteCond 指令检查查询字符串参数。
  • 如果您在/ourlocations.asp
  • RewriteRule 的第一部分会匹配
  • 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>

答案 1 :(得分: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>

答案 2 :(得分:-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]

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