2017-02-02 4 views
0

С помощью поля выбора городов я должен изменить URL-адрес: mywebsite.com/index.php to mywebsite.com/myselecttownvalue/index.php или mywebsite.com/anotherselecttownvalue/index.phpurl rewriting: добавьте виртуальную папку в url из значения select box html

Возможно ли это с помощью htaccess?

Ty для справки!

+2

Непонятно, что вы спросите ... Использование и реакция на выбор варианта не имеет ничего общего с динамическим файлом конфигурации (.htaccess), который onl контролирует детали протокола связи (https). Итак, немедленный ответ на ваш вопрос: Нет, это невозможно с «htaccess». Для этого вам нужно использовать либо сообщение формы, либо клиентскую логику (javascript). – arkascha

+0

Извините за непонятный вопрос. С javascript и php я делаю перенаправление. С htaccess я просто хочу знать, можно ли принять все URL-данные с городами? Ty –

ответ

0

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

Что касается ваших примеров: как правило, можно было бы оставить из имени сценария, так что URL-адреса будет выглядеть чистым, что-то вроде https://example.com/town/myselectedtown и получить внутренне переписывается на что-то вроде /index.php?town=myselectedtown так, чтобы выбранное значение доступно в $_GET суперглобальном переменной как $_GET['town']. Позаботьтесь к URL-закодировать название города, хотя, в случае, если он содержит пробелы или смешные вещи ...

Взгляните на этот пример настройки:

RewriteEngine on 
RewriteRule ^/?town/(.+)$ /index.php?town=$1 [L] 

Приведенное выше правило будет работать в файлах динамической конфигурации («.htaccess») и в реальной конфигурации хоста HTTP-серверов.

Вы, конечно, можете определить свои URL-адреса без токена /town внутри, вы предложили (так что только https://example.com/myselectedtown). Но это обычно вызывает проблемы с другими шаблонами URL-адресов, поскольку никогда не бывает ясно, относится ли URL к названию города или к чему-то еще ...

И общий намек: вы всегда должны ставить такие правила внутри http-серверов вместо конфигурации динамических конфигурационных файлов («.htaccess»). Эти файлы, как известно, подвержены ошибкам, трудно отлаживаются, и они действительно замедляют работу сервера. Они предоставляются только в качестве последнего варианта для ситуаций, когда у вас нет контроля над конфигурацией хоста (читай: действительно дешевые хостинг-провайдеры) или если у вас есть приложение, которое опирается на составление собственных правил перезаписи (что является очевидным кошмаром безопасности).