0

我有一个带有动态主页的网站,其中只有一个图像更改,网址如下所示:

http://mysite.com/?v=imagename.jpg

我正在尝试找到将所有这些 url 重定向到的规则:

http://mysite.com/imagename

我努力了:

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

和无数其他变化,但似乎没有任何工作..我做错了什么?

4

1 回答 1

1

要将使用查询字符串访问 URL 的浏览器重定向到没有 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]
于 2012-10-02T18:58:46.080 回答