我想将http://mywebsite.com/folder/file.html转换为http://mywebsite.com/file。 我没有使用正则表达式,我只关心这一个URL。
我试过了 -
Redirect 301 /folder/file.html http://mywebsite.com/file
使用此功能,我可以从外部将此网址重定向到所需的网址,但由于该网址不存在,因此我获得了404.
现在,为了将新网址内部重定向到旧网址,我使用的是以下命令,但它似乎无法正常工作 -
RewriteRule http://mywebsite.com/file http://mywebsite.com/folder/file.html [L]
答案 0 :(得分:1)
仅使用mod_rewrite
指令并使用THE_REQUEST
变量进行外部重定向。
# turn on rewrite engine
RewriteEngine On
# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+/folder/file\.html[\s?] [NC]
RewriteRule ^ /file [R=301,L,NE]
# internal forward from pretty URL to actual one
RewriteRule ^file/?$ /folder/file.html [L,NC]