开发者

Page redirect not happening

I have dynamically created images on my index.html page. I want the user to be able to click on them and be redirected to pic_page.html.

The image links on the index.html page look like this:

//<a href="http://mysite.com/index.html?bluepart=view&blueimage=29">//

My redirect code in .htaccess looks like this:

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{IMAGE}  ^bluepart=view&blueimage=([0-9]+)$
RewriteRule ^/index.html$ /pic_page.html [R=301,L]
</IfModule>

The redirect does not work. When I scroll down index.html and click an image, the page jumps back to the top of the index.html page.

Test links to pic_page.html s开发者_JAVA百科uch as this work fine:

//<a href="http://mysite.com/pic_page.html?bluepart=view&blueimage=23">test</a>//

Any idea why the redirect won't work, and just jumps to the top of index.html?

Thanks, Darrell


1. Question: Why don't you use proper link in first place? You could easily avoid all these problems.

2. Answer to your question: what %{IMAGE} supposed to do? I have no idea what %{IMAGE} means -- it is definitely not a standard mod_rewrite variable.

Change it to %{QUERY_STRING} then rule will work as intended:

RewriteCond %{QUERY_STRING} ^bluepart=view&blueimage=([0-9]+)$
RewriteRule ^index\.html$ /pic_page.html [R=301,L]

P.S. I do not know why do you use redirect here (301 Permanent Redirect) and therefore I may be wrong, but I would use rewrite (internal redirect) instead of actual redirect (301, external redirect). For this -- replace [R=301,L] by [L]

Also, because this rule (as you have stated) is placed in .htaccess, no need for leading slash in rewrite pattern ^/index.html$ -- should be just ^index.html$ (that leading slash is required IF rule is placed in Apache config file / virtual host context).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜