301将文件名重定向到新URL

时间:2014-11-16 11:54:53

标签: wordpress .htaccess url redirect http-status-code-301

我正在尝试在htaccess文件中创建Apache 301重定向,从静态html页面到新的动态wordpress页面:

  

:example.com/category/item.html

     

:示例/新页

没有类别的重定向工作正常,例如:

  

:example.com/item.html

     

:示例/新页

但是对于类别,我尝试的每个重定向最终都会在网址末尾添加item.html:

  

example.com/newpage/item.html

我尝试了这些重定向:

Redirect 301 /category/item.html http://example.com/newpage

RewriteCond %{QUERY_STRING} ^/category/item.html$

RewriteRule ^$ http://example.com/newpage? [R=301,L]

3 个答案:

答案 0 :(得分:0)

您需要在RewriteEngine On行:

下方使用此规则
RewriteRule ^category/item\.html$ /newpage? [R=301,L,NC]

答案 1 :(得分:0)

问题已通过简单的重定向301 以正确的顺序解决:

Redirect 301 /category/oldpage.html /newpage
Redirect 301 /category /newpage

我在错误的优先级中使用它,所以它最初没有工作。不管怎样,谢谢。

答案 2 :(得分:0)

.htaccess中的重定向对我不起作用时,我使用jQuery。如果您有冲突,请将jQuery放在file.js中:

<script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.min.js"> </script>

<script type="text/javascript">
$(document).ready(function() {
    $('a[href^="https://example.com/category/item.html"]').each(function() {
        var oldUrl = $(this).attr("href"); // Get current url
        var newUrl = oldUrl.replace("https://example.com/category/item.html", "https://example/newpage"); // Create new url

        $(this).attr("href", newUrl); // Set herf value
    });
});
</script>