301从动态ASPX重定向

时间:2016-01-13 10:45:41

标签: .htaccess mod-rewrite redirect

我有一个令人生畏的动态重定向问题,我必须在一个aspx网站之前的WordPress网站上做。

我正在寻找一个星期的建议,几乎所有事情都尝试了不同的结果,但没有一个证明是成功的。

我需要重定向复杂的网址,例如:

/Products/tabid/174/CategoryID/134/List/0/Level/a/ProductID/6572/Language/en-GB/Default.aspx?SortField=ProductName%2CProductName

简单到像

这样的东西
http://domain.com/folder/

我使用了很多想法,包括来自StackOverflow的负载,但似乎都没有解决这个具体的例子。只要我没有,使用标准的重定向301规则就可以使用吗?在链接中。我知道这超出了Redirect 301的范围,我需要使用RewriteRule。

我试过这个(从excel电子表格中获取动态网址重定向):

RewriteCond %{QUERY_STRING} ^SortField=ProductName%2CProductName$
RewriteRule ^Products/tabid/174/CategoryID/134/List/0/Level/a/ProductID/6572/Language/en-GB/Default\.aspx$ http://domain.com/folder/? [R=301,L]

但仍然在输入网址时会产生404页面。

这是我的.htaccess:

## 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]

## messing up
RewriteCond %{QUERY_STRING} ^SortField=ProductName%2CProductName$
RewriteRule ^Products/tabid/174/CategoryID/134/List/0/Level/a/ProductID/6572/Language/en-GB/Default\.aspx$ http://domain.com/folder/? [R=301,L]

</IfModule>

我是否正确放置?代码是对的吗?我会很感激任何想法和线索。 万分感谢

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。代码很好,只是放置不正确。经过十几次尝试和错误,我找到了正确的公式。我不得不修改我的重定向规则的放置。以下是它的外观:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^Products/tabid/174/CategoryID/134/List/0/Level/a/ProductID/6572/Language/en-GB/Default\.aspx$ http://doamin.com/folder/? [R=301,L]
RewriteCond %{QUERY_STRING} ^SortField=ProductName%2CProductName$Products/tabid/174/CategoryID/134/List/0/Level/a/ProductID/6572/Language/en-GB/Default.aspx?SortField=ProductName%2CProductName
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>