如何在htaccess中定位除index.html之外的所有.html URL

时间:2017-03-01 22:40:09

标签: wordpress .htaccess url permalinks

我目前在我的Wordpress htaccess文件中有这个:



    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
        RewriteRule ^index\.html?$ / [NC,R,L]
        RewriteEngine On
        RewriteBase /
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.php [L]
    </IfModule>

    #RedirectMatch 301 (.*)\.html$ $1/
&#13;
&#13;
&#13;

我正在尝试将所有.html重定向到没有任何文件扩展名的网址,即www.example.com/about.html到www.example.com/about /.

在/index.html重定向到/

的情况下,代码可以正常工作

上面评论的代码(RedirectMatch 301 (.*)\.html$ $1/)应该适用于将.html重定向到漂亮的网址,但它也会为index.html执行此操作,而不是将其重定向到/它将其重定向到/索引

我有没有办法压缩我的代码并做我想做的事情?

1 个答案:

答案 0 :(得分:0)

有这样的话:

RewriteEngine On
RewriteBase /

RewriteRule ^index\.html?$ / [NC,R,L]

# redirect every .html except index.html
RewriteRule ^(?!index\.html$)(.+)\.html?$ /$1 [NC,R,L]

RewriteRule ^index\.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]