Mod_rewrite поддерживает условия и правила с RegEx, так что вы можете иметь правило, соответствующее ?id=XXXX
, которое извлечет его из URL ( сохраняя остальные параметры), и соответственно переписали URL.
Однако ... я не думаю, что вы захотите это сделать, потому что если вы переписаете URL-адрес на /go/Some+Search+Query
, вы не сможете получить его, скажем, PHP, без разбора URL-адреса. вручную.
Действительно сложно иметь настраиваемые, оптимизированные для SEO URL-адреса с пользовательским вводом, но это технически возможно. Вам лучше оставить в части ?id=XXX
, и вместо этого, используя mod_rewrite в противоположном подходе ... взять все URL-адреса, которые соответствуют шаблону /go/My+Search+Terms
, и перевести это обратно во что-то вроде ?id=My+Search+Terms
, таким образом, вы ' Вы сможете легко разобрать значение, используя параметры GET URL. Это не редкая практика - Google фактически все еще использует параметры URL для ввода данных пользователем (пример URL: http://www.google.com/search?q=test
).
Имейте в виду, что mod_rewrite переписывает URL-адрес раньше, чем что-либо еще (даже PHP), поэтому все, что вы делаете с URL-адресом, нужно обрабатывать. Думайте о mod_rewrite как о глобальном поиске и замене URL-адресов на основе регулярных выражений при каждом вызове страницы на сервере. Например, если вы удалите строку запроса, вам необходимо убедиться, что ваш веб-сайт / приложение / что-либо еще учитывает это.