Как использовать .htaccess для перенаправления URL, который имеет символ # - PullRequest
0 голосов
/ 29 апреля 2011

Я смотрел на это пару дней, даже если бы ИТ-специалисты на работе пытались это выяснить, но мы не очень далеко продвинулись.

У меня есть URL my.website.com/index.php#!lightBox[gallery]/0/, который я хочу перенаправить только на my.website.com. Я могу сделать это хорошо только с index.php, но это лишние части, которые не работают. Я пробовал:

RewriteCond %{HTTP_HOST} ^my.website.com$ [NC]
RewriteRule (.*) http://my.website.com/index.php#!lightBox[gallery]/0/? [R=301,L]

и cpanel сгенерировали следующее перенаправление:

RewriteCond %{HTTP_HOST} ^my.website.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.my.website.com$
RewriteRule ^/?$ "http\:\/\/my\.website\.com\/\#\!lightBox\[gallery\]\/0\/" [R=301,L]

Оба выводят my.website.com/%23!lightBox[gallery]/0/ в качестве URL - как вы можете видеть, хэш не обрабатывается.

Если у кого-нибудь есть идеи, которые я бы хотел услышать!

Спасибо:)

1 Ответ

0 голосов
/ 29 апреля 2011

Ваши правила такие:

Options +FollowSymlinks -MultiViews
RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.)?my\.website\.com$ [NC]
RewriteRule ^/?$ http://my.website.com/index.php#!lightBox[gallery]/0/ [R=301,L,NE]

Вам нужно экранировать точку . в RewriteCond, но не нужно экранировать специальные символы в RHS. Важно, чтобы у вас был флаг NE, чтобы не выходить из результирующего URI.

...