我有一个带有视频播放器的网站,用php创建。
我已经过管理来清理www.website.com/player.php?id=10
的网址
到www.website.com/player/10
,其中10
是给定视频的ID。
.htaccess文件的代码如下:
RewriteEngine On
RewriteRule ^player/([0-9]+)$ player.php?id=$1
如果我直接输入www.website.com/player/10
,这样可以正常工作,但是,如果有人试图访问旧链接,则不会重定向。我怎么能在.htaccess文件中这样做?
答案 0 :(得分:0)
重定向和重写之间存在差异。
重定向向客户端发出HTTP标头,强制他们请求新位置。 重写是服务器内部的,并将请求的位置映射到另一个位置。
因此,只需将“旧”样式重定向到“ new ”样式并重写“ new ”样式:
# Match id in the query string and capture the id
RewriteCond %{QUERY_STRING} ^id=(.*)$ [NC]
# Redirect the old to the new player/id
RewriteRule ^player.php$ player/%1 [NC,R=301,L]
# Rewrite the new to the old
RewriteRule ^player/([0-9]+)$ player.php?id=$1