Можете ли вы написать 301 перенаправление на точку привязки? - PullRequest
5 голосов
/ 22 декабря 2008

Это правильно и правильно?

RewriteRule ^myOldPage.html$ /index.php#info [R]

Меня особенно интересует часть #info.

Ответы [ 2 ]

5 голосов
/ 22 декабря 2008

Да. Это допустимое перенаправление 301 (стандарт HTTP допускает предоставление любого действительного URI в качестве перенаправления).

Теперь предостережение: не все поисковые системы могут любить перенаправление. Google проделывает фантастическую работу с тегами привязки (у них даже есть патент на этот ), в то время как другие полностью игнорируют их. Пока это не проблема, перенаправление технически допустимо.

Обновление: Если у вас проблемы с mod_rewrite, попробуйте флаг NE (без escape), чтобы предотвратить кодирование символа #:

RewriteRule ^myOldPage.html$ /index.php#info [R,NE]
0 голосов
/ 22 декабря 2008

Хотя это выглядит правильно, у меня странное чувство, что это не сработает.

Браузер должен знать о #anchor. Сервер и mod_rewrite могут просто игнорировать его.

Если это не сработает, я думаю, вы могли бы сделать что-то вроде ..

RewriteRule ^myOldPage.html$ /index.php?info=true [R]

и затем в php выведите фрагмент javascript для выполнения якорного перехода.

...