htaccess перенаправление удалить вопросительный знак из URL

Я хочу удалить вопросительный знак из URL-адреса и перенаправить на ту же страницу без вопросительного знака.

Мой URL-адрес, например:

http://domain.com/what-is-your-name?/21.php

Нужен URL:

http://domain.com/what-is-your-name/21.php

person saravanabawa    schedule 10.06.2014    source источник


Ответы (1)


Это удалит любую отметку ? из 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-адресах, либо полностью удалить их.

person Peter    schedule 10.06.2014
comment
Я хочу сделать только этот URL. А также перенаправляется URL на страницу как index.php?em=$1 - person saravanabawa; 11.06.2014