Как в htaccess сделать редирект с якоря (текст после #)?

Поставили задачу сделать редирект с ссылок содержащих якорь.
Раньше таким не занимался и уговоры, что не стоит на них обращать внимание не помогли.

Пробовал сам, но вот такой код не сработал:
RewriteCond %{REQUEST_URI} \#
RewriteRule ^(.*?)\#.*$ /$1 [R=301,L]


Хотя уже написал данный функционал на JavaScript, но хочется сделать именно через htaccess.
  • Вопрос задан
  • 321 просмотр
Пригласить эксперта
Ответы на вопрос 1
Lakika
@Lakika
Sicario
RewriteEngine On

# Проверка на наличие якоря в URL
RewriteCond %{REQUEST_URI} ^(.*)\#(.*)$
# Выполнение редиректа на URL без якоря
RewriteRule ^ %1? [R=301,L]


Эти правила проверяют, содержит ли URL якорь, используя директиву RewriteCond, и, если да, выполняют редирект на URL без якоря, используя директиву RewriteRule.

Важно учесть, что при перенаправлении с URL, содержащим якорь, на URL без якоря, может быть потеряна часть информации, которая находится после символа "#". Если вам нужно сохранить эту информацию, то вам необходимо изменять правила редиректа в соответствии с вашими требованиями.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы