Обычно к PHP-сценариям обращаются напрямую, аналогично CGI-сценарию - в основном вы обращаетесь к сценарию, как к любому обычному файлу, но веб-сервер перехватывает этот запрос, запускает сценарий и возвращает вывод вместо содержимого файла.
Большинство фреймворков Python имеют свои собственные системы маршрутизации, где вы определяете что-то вроде:
urls = ( ('^/article/(\d+)$', ArticleController), ('^/user/(.+?)$', UserController) )
..то вы получите доступ к чему-то вроде ..
http://example.com/router.py?uri=article/123
..И она будет проходить через отображение URL, определенного в urls
, и отправить запрос в соответствующий класс ... но имеющий router.py
участие во всех ваших URL - адресов немного дрянной, поэтому можно использовать mod_rewrite
для перенаправления /(.*)
на /router.py/$1
(через .htaccess
, ваш Apache конфигурация и т. д.)
Вы можете сделать то же самое с PHP или любым другим языком - именно так работает CodeIgniter (среда PHP)
Если вы совершенно безумны, вы можете использовать mod_rewrite
и сопоставлять /user/(\d+).py
с /ViewController.php?id=$1
чем-либо, но обычно нет никакого смысла добавлять поддельное расширение на страницу (есть несколько исключений, в основном обратная совместимость и предоставление доступа к данным в различных форматах в API).
Вы также можете сделать «путь PHP», используя Python, если вы пишете каждую страницу в виде отдельного CGI-скрипта, просто большинство фреймворков Python, как правило, используют настройку MVC (или MVC-подобную), которую я описал выше.