Как использовать htaccess для перезаписи URL к тегу привязки HTML (#)

У меня есть ситуация, где я хочу взять следующий URL:

/1/john

и имейте его перенаправление с помощью htaccess файла Apache для движения в

/page.php? id=1&name=john#john

так, чтобы это перешло к привязке к HTML с именем Джона.

Я нашел большую ссылку на выход из специальных символов, и на добавление флага [NE] так, чтобы перенаправление проигнорировало знак #, но они не работают. Например, добавляя [NE, R] означает, что URL просто появляется в адресе браузера как оригинал: http://example.com/page.php?id=1&name=john#john.

16
задан Cœur 31 December 2016 в 08:22
поделиться

2 ответа

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

Я быстро нашел для вас это хорошо объясненное сообщение в блоге , надеюсь, оно поможет вам в обучении переписыванию URL-части .

Что касается # -thing (ожидая, что теперь вы знаете, о чем я говорю), я не вижу проблем в передаче одной и той же переменной в перезаписанный URL дважды. Например: (обратите внимание на последнюю часть первой строки)

RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$  /$1/$2/#$2 [R]
RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/$ /index.php?page=$1&subpage=$2

Хотя вам придется избегать # -часть, и кажется , что это можно сделать таким образом :

RewriteRule ^([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)$  /$1/$2/\%23$2 [R,NE]

Кстати, перезапись URL не такая сложная задача (но может стать сложной, и я не эксперт), но Google может очень помочь на этом пути.

2
ответ дан 30 November 2019 в 21:02
поделиться

Вы не можете выполнить внутреннее перенаправление на привязку. (Подумайте об этом: как Apache прокрутил бы вниз до привязки?) Ваша ссылка должна указывать на / 1 / john # john . Якоря не являются частью URI запроса.

0
ответ дан 30 November 2019 в 21:02
поделиться
Другие вопросы по тегам:

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