我想设置这些重定向:
file
- > file.html
file.htm
- > file.html
file.php
- > file.html
然而,只有前者不存在而后者不存在时才会发生这些重定向。这是我到目前为止所拥有的。
RewriteEngine On
RewriteCond %{REQUEST_URI} \.htm$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{THE_TARGET_URL} -f # <----------- how to do this?
RewriteRule ^(.*)\.htm$ $1.html [L,R]
我想使用clean urls。然而在此期间,我正在切换到not yet support that的Jekyll。当Jekyll得到这种支持时,我将再次向另一个方向重定向。
答案 0 :(得分:2)
您可以使用:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/$1\.html -f [NC]
RewriteRule ^(.+?)(?:\.(?:htm|php))?$ /$1.html [L,NC,R=302]
在执行%{DOCUMENT_ROOT}/$1\.html
之前, .html
将确保存在相应的RewriteRule
文件。