htaccess等效代码到javascript条件代码

时间:2014-03-09 09:27:47

标签: javascript regex apache .htaccess redirect

我想知道是否有一些htaccess代码等同于以下javascript代码。

我移动了一个wordpress网站,它丢失了一些永久链接插件。我记得插件名称,但我不想再次使用它,因为我希望我的网站尽可能多地使用插件。移动网站后的问题是在GWM中显示太多未找到的错误。

我是htaccess的新手,我可以使用“Redirect 301”进行重定向。但是如果我使用这个重定向,那么.htaccess中会有很多重定向行。我也不希望在htaccess中有太多行。然后我使用javascript重定向,我得到一个工作的JavaScript代码如下

$(function(){
        var url = this.location.href;
        var last_char = url.substring(url.length - 1);
        var last_five = url.substring(url.length - 5);
        if(!(/category/i.test(url)) && !(last_five=="blog/") && !(last_five=="html/") && last_char == "/"){
            var result = url.substring(0, url.length - 1);
            top.location.href = result+".html";
        }
    });

在显示404页面后重定向。我不希望访问者看到404页面,我认为htaccess可能会有所帮助,但我不知道如何写。我在上面写了javascript代码,因为

  1. 大多数未找到的页面只需要删除最后一个斜杠(/) 字符,然后附加“.html”
  2. 类别页面不需要附加“.html”
  3. “。html /”(以斜线结尾,但不需要重定向精细页面)
  4. 我的博客主页是(myurl.com/blog/),但不需要删除 斜线并附加.html
  5. 提前感谢所有答案!

1 个答案:

答案 0 :(得分:1)

您可以在.htaccess中使用此等效规则:

RewriteEngine On

RewriteCond %{REQUEST_URI} /$
RewriteCond %{REQUEST_URI} /category/
RewriteCond %{REQUEST_URI} !blog/$
RewriteCond %{REQUEST_URI} !html/$
RewriteRule ^(.+?)/?$ $1.html [L,R]