Я хочу удалить вопросительный знак из URL-адреса и перенаправить на ту же страницу без вопросительного знака.
Мой URL-адрес, например:
http://domain.com/what-is-your-name?/21.php
Нужен URL:
http://domain.com/what-is-your-name/21.php
Я хочу удалить вопросительный знак из URL-адреса и перенаправить на ту же страницу без вопросительного знака.
Мой URL-адрес, например:
http://domain.com/what-is-your-name?/21.php
Нужен URL:
http://domain.com/what-is-your-name/21.php
Это удалит любую отметку ?
из URL.
RewriteCond %{QUERY_STRING} ^(.+)$
RewriteRule ^(.*)$ $1%1? [R,L]
поместите его в качестве первого правила в .htaccess
Краткое объяснение:
RewriteCond %{QUERY_STRING} ^(.+)$
проверяет, есть ли в URL-адресе какая-либо строка запроса GET (например, ?foobar
, ?foo=bar
или ?/21.php
), а также заполняет переменную %1
. Когда требование RewriteCond выполнено, RewriteRule ^(.*)$
перезаписывает ЛЮБОЙ URL-адрес. $1
заполняется частью URL перед отметкой ?
. Флаг [R]
указывает, что это перенаправление. [L]
означает, что это последнее правило.
Я настоятельно рекомендую не делать этого и делать это должным образом, исправляя ваши ссылки.
Можно либо убрать вопросительные знаки в URL-адресах, либо полностью удалить их.