我有一个包含动态主页的网站,其中只有一个图片发生变化,网址如下所示:
http://mysite.com/?v=imagename.jpg
我正在尝试找到将所有这些网址重定向到的规则:
我试过了:
RewriteCond %{QUERY_STRING} ^(([^&]*&)*)v=([^&]+)&?(.*)?$
RewriteRule ^index\.php$ http://mysite.com/3?%1%4 [L,R=301]
和
RewriteRule ^index.php?v=([a-zA-Z]+)/([0-9]+)$ http://mysite.com/$1
以及无数其他变化,但似乎没有任何效果......我做错了什么?
答案 0 :(得分:1)
要将使用查询字符串访问URL的浏览器重定向到不带URL,请执行以下操作:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(index\.php)?\?v=([^&\ ]+?).jpg&?([^\ ]*)
RewriteRule ^ /%2?%3 [L,R=301]
然后在浏览器获得重定向后,它将尝试在没有查询字符串的情况下请求URL。如果/imagename
实际上没有任何内容,那么您需要将重新重写为查询字符串的URI:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ /?v=$1.jpg [L,QSA,NC]