Знак .htaccess # (хеш) из параметров - PullRequest
0 голосов
/ 13 сентября 2018

Привет всем, я пытаюсь создать небольшой MVC-фреймворк с нуля, используя PHP.Для этого я использую простую URL-схему contorller / method / params .Мой файл htaccess выглядит так:

<IfModule mod_rewrite.c>
  Options -Multiviews
  RewriteEngine On
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
</IfModule>

Но когда я пытаюсь получить строку URL: explorer / add / c # через $ _ GET ['url'] Я получаю explorer / add / c Даже если я закодирую его следующим образом explorer / add / c% 23 все равно не получаю ничего, кроме explorer / add / c%24 ($ -символ) работает просто отлично.Как видите, я не очень хороший администратор сервера, поэтому надеюсь на вашу помощь, ребята.Дайте мне знать, если вам нужна дополнительная информация от меня и спасибо

1 Ответ

0 голосов
/ 13 сентября 2018

Фрагмент не отправляется на сервер клиентом.Т.е. # и все последующее никогда не будет частью URL, который видит ваш сервер.

С здесь :

Идентификаторы фрагмента играют особую роль винформационно-поисковые системы как первичная форма косвенных ссылок на стороне клиента, позволяющая автору конкретно идентифицировать аспекты существующего ресурса, которые только косвенно предоставляются владельцем ресурса.Как таковой, идентификатор фрагмента не используется в специфичной для схемы обработке URI;вместо этого идентификатор фрагмента отделяется от остальной части URI до разыменования, и, таким образом, идентифицирующая информация в самом фрагменте разыменовывается исключительно пользовательским агентом, независимо от схемы URI.

Если вы хотите перенаправить URL-адрес, включая фрагментную часть, вам необходимо реализовать перенаправление на стороне клиента через Javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...