В настоящее время я изучаю, как изменять URL-адреса в php, используя Mod rewrite.
Типичный URL-адрес может выглядеть так:
http://www.fitness.com/find_a_pt/?county=&constituency=211&gender=&action=search
Теперь в приведенном выше примере выбран только один избирательный округ. Никакой уезд или пол не указаны.
Теперь вышеупомянутый избирательный округ относится к «Дартфорду».
Поэтому было бы хорошо, если бы URL-адрес читался:
http://www.fitness.com/find_a_pt/dartford
Теперь добавленное осложнение состоит в том, что гендер может быть:
1) Не выбрано – согласно указанному выше URL-адресу
2) Мужской
http://www.ego3fitness.com/find_a_pt/?county=&constituency=211&gender=1&action=search
3) Женский
http://www.ego3fitness.com/find_a_pt/?county=&constituency=211&gender=&actiom=search
Поэтому URL-адреса должны будут читать:
1) http://www.fitness.com/find_a_pt/dartford
2) http://www.fitness.com/find_a_pt/dartford/male
3) http://www.fitness.com/find_a_pt/dartford/female
Во-первых, возможно ли это быть конкретным с переписыванием URL-адресов, и если да, то кто-то может служить примером для меня.
Заранее благодарны за Вашу помощь.
Я всегда использую те же правила mode_rewrite:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L]
С помощью этих правил все forwared to index.php. Таким образом, вы можете реализовать каждую логику url с помощью PHP.
Вы можете получить запрос uri с $_SERVER['REQUEST_URI']
и делать все, что хотите.
Приятно иметь класс Routing с правилами регулярных выражений для анализа uri. Посмотрите пример здесь, а также прочитайте, как это делают большие фреймворки, такие как Zend, Code Igniter и т. Д. (Правило перезаписи, которое я предоставил, из Zend Framework кстати)