.htaccess - 301重定向所有没有扩展名的文件,扩展名为.html

Bry*_*ynJ 5 .htaccess mod-rewrite redirect

我需要301将请求重定向到没有扩展名的文件,并附加.html扩展名:

http://www.mydomain.com/this
Run Code Online (Sandbox Code Playgroud)

http://www.mydomain.com/this.html
Run Code Online (Sandbox Code Playgroud)

以下内容不会被重定向:

http://www.mydomain.com/that/ (it's a directory)
http://www.mydomain.com/other.php
Run Code Online (Sandbox Code Playgroud)

感谢上述任何帮助.

Jas*_*ary 5

请尝试以下方法.我会把它作为你集合中的最后一条规则(即底部),以免与任何其他规则发生冲突.

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !\..+$
RewriteRule ^(.*)$ /$1.html [R=301,L]
Run Code Online (Sandbox Code Playgroud)

这应该确保请求不是目录,并且不会以某种扩展名结束.如果满足这些条件,它将附加请求.html.

这是未经测试的,因此如果有效,请回复.;)