Перенаправление страницы не происходит - PullRequest
0 голосов
/ 21 августа 2011

Я динамически создавал изображения на своей странице index.html. Я хочу, чтобы пользователь мог нажимать на них и перенаправлять на pic_page.html.

Ссылки на изображения на странице index.html выглядят так:

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

Мой код перенаправления в .htaccess выглядит так:

<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>

Перенаправление не работает. Когда я прокручиваю index.html и нажимаю на изображение, страница возвращается на верх страницы index.html.

Проверить ссылки на pic_page.html, например, это нормально работает:

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

Есть идеи, почему перенаправление не сработает, а просто переходит на вершину index.html?

* +1015 * Спасибо, Даррелл

1 Ответ

0 голосов
/ 21 августа 2011

1. Вопрос: Почему вы не используете правильную ссылку в первую очередь?Вы можете легко избежать всех этих проблем.

2. Ответ на ваш вопрос: что %{IMAGE} должен делать?Я понятия не имею, что означает %{IMAGE} - это определенно не стандартная переменная mod_rewrite.

Измените ее на %{QUERY_STRING}, тогда правило будет работать так, как задумано:

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

PS Я не знаю, почему вы здесь используете перенаправление (301 Permanent Redirect), и поэтому я могу ошибаться, но я бы использовал перезапись (внутреннее перенаправление) вместо фактического перенаправления (301, внешнееперенаправление).Для этого - замените [R=301,L] на [L]

Кроме того, поскольку это правило (как вы указали) помещено в .htaccess, нет необходимости использовать начальную косую черту в шаблоне перезаписи ^/index.html$ - должно бытьпросто ^index.html$ (необходим начальный слеш, если правило помещено в файл конфигурации Apache / контекст виртуального хоста).

...