Htaccess RewriteRule如果以下都不是

时间:2017-04-13 08:47:20

标签: php wordpress apache .htaccess mod-rewrite

情况:

  1. 旧的Wordpress网站已被新的Wordpress取代 多站点(ROOT,nl,en)和链接已更改。
  2. 我想将来自旧网址的流量重定向到新网址(例如/ case - > / nl / blog)
  3. 规则集:

    URI is empty         --> redirect to /nl (default language)
    URI is /en OR /nl    --> redirect to /en/ OR /nl/ (add forward slash)
    
    URI is /oldurl1      --> redirect to /newurl1
    URI is /oldurl2      --> redirect to /newurl2
    ...
    URI is /oldurlX      --> redirect to /newurlX
    
    URI is NOT ANY of the known old URLs or new ones --> show nl/404
    

    没有最后一行,默认的Wordpress 404不会显示,而是显示浏览器404。

    审判和失败:

    RewriteEngine On
    RewriteBase /
    
    
    # URI is empty --> redirect to /nl (default language)
    RewriteRule ^$ nl/ [R=301,L]
    
    # URI is /en OR /nl --> redirect to /en/ OR /nl/ (add forward slash)
    RewriteRule ^(en|nl)$  $1/ [R=301,L]
    
    # URI is /oldurl1 --> redirect to /newurl1
    RewriteRule ^(oldurl1|oldurl1/)$  nl/newurl1/ [R=301,L]
    
    # URI is NOT ANY of the known old URLs or new ones --> show nl/404
    RewriteRule !^(nl|en|nl/|en/|oldurl1|oldurlX......this can't be right)$  nl/404
    

    问题

    将所有未知网址定向到404网页的有效方法是什么?

1 个答案:

答案 0 :(得分:0)

每个WordPress主题都可以使用自己的404错误页面。还有一些插件可以自定义默认的Wordpress 404页面