我有一个令人生畏的动态重定向问题,我必须在一个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>
我是否正确放置?代码是对的吗?我会很感激任何想法和线索。 万分感谢
答案 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>