Как убрать часть строки url через htaccess

12
U
На сайте с 24.04.2013
Offline
17
4857

Добрый день! Не могу решить проблему. Есть сайт на опенкарт, с помощью одного сервиса создал список ссылок для яндекс директа, там получились ссылки с %23 вместо символа # в URL. Когда переходишь по такой ссылке, то URL обрезается, видимо конфликт ЧПУ-модуля или самого опенкарта старой версии с этим %23... Т.е. "site.ru/privet%23kak-dela" становится вида "site.ru/privet" и соответственно не работает (ошибка 404). Вручную переписывать около 1000 ссылок не вариант, поэтому решил через htaccess прописать.

1) Как принудительно заставить %23 меняться на #?

2) Если так нельзя, то как %23 просто вырезать из URL?

nikonlay
На сайте с 11.12.2006
Offline
176
#1

RewriteRule ^/privet(%23)kak-dela?$ /privet#kak-dela

Мощные фонари и бинокли: https://market.yandex.ru/store--volny-i-veter?businessId=79203856
U
На сайте с 24.04.2013
Offline
17
#2

nikonlay, спасибо, но это не совсем то. Вместо "привет как дела" может быть любой другой набор символов различной длинны. Но суть понял.

siv1987
На сайте с 02.04.2009
Offline
427
#3

RewriteEngine On

RewriteRule ^(.*)#(.*) /$1#$2 [L,R=301,NE]

# вместо %23 - так должно быть.

R
На сайте с 20.02.2015
Offline
59
#4

# вроде как якорь, и если мне не изменяет память браузер не передает на сервер содержимое УРЛ после якоря.

WebAlt
На сайте с 02.12.2007
Offline
251
#5

# недопустимый символ внутри url, поэтому и %23 HTML URL Encoding Reference

U
На сайте с 24.04.2013
Offline
17
#6

Всем спасибо, вроде разобрался, работает теперь.

WebAlt
На сайте с 02.12.2007
Offline
251
#7
upgradepro:
Всем спасибо, вроде разобрался, работает теперь.

Напиши как разобрался для других, а то не солидно как-то.:)

R
На сайте с 20.02.2015
Offline
59
#8

WebAlt, там нет решения :)

Якорь не передается ни ГЕТ ни ПОСТ запросами.

УРЛ /ru/forum/906210

ГЕТ браузера:


GET /showthread.php?t=906210 HTTP/1.1
Host: searchengines.guru
User-Agent: ...
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Cookie:...
Connection: keep-alive
Cache-Control: max-age=0

siv1987
На сайте с 02.04.2009
Offline
427
#9
rereg:
WebAlt, там нет решения

Тему внимательно прочитайте, за одно и решение найдете. Речь не о якоре, а о его шестнадцатеричном представление.

R
На сайте с 20.02.2015
Offline
59
#10

Давайте по порядку..

siv1987:
RewriteEngine On
RewriteRule ^(.*)#(.*) /$1#$2 [L,R=301,NE]

# вместо %23 - так должно быть.

GET http://localhost/temp/ff%23uuu -> редирект на http://localhost/temp/ff#uuu -> GET http://localhost/temp/ff


http://localhost/temp/ff%23uuu

GET /temp/ff%23uuu HTTP/1.1
Host: localhost
User-Agent: ...
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive

HTTP/1.1 301 Moved Permanently
Date: Fri, 14 Aug 2015 16:23:20 GMT
Server: Apache/2.2.27 (Win32)
Location: http://localhost/temp/ff#uuu
Content-Length: 231
Keep-Alive: timeout=10, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
----------------------------------------------------------
http://localhost/temp/ff#uuu

GET /temp/ff HTTP/1.1
Host: localhost
User-Agent: ...
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий