没有mod_rewrite的Python无扩展名URL

时间:2011-04-14 02:15:52

标签: python canonicalization

我目前正在移植一个从php到python的网站。 php web app使用

使用extenionless url
DefaultType application/x-httpd-php

我能为python做些什么吗?我已经在Google上搜索并尝试添加对python有意义的mime类型,但到目前为止还没有成功。我希望这样做,而不是使用mod_rewrite,如果可能的话。

感谢。

更新:我的服务器当前设置为使用wsgi但是如果我的python脚本没有扩展名,浏览器将下载它们而不是被服务器解析。

2 个答案:

答案 0 :(得分:1)

WSGI根本不使用/需要扩展;您的路由框架适当地处理URL。如果你不使用WSGI ......为什么不呢?

答案 1 :(得分:0)

我想一个完整的答案需要永远,但在apache上运行python的最好方法是通过WSGI,所以我建议你从这里开始看:http://code.google.com/p/modwsgi/

这基本上需要两件事:

  1. mod_wsgi for apache(小警告,从apt软件包安装将切换你的apache MPM并可能卸载你的mod_php;他们可以一起生活,但是需要一些手工操作)
  2. 实现基本wsgi接口的python脚本
  3. 如果你正在构建一个网站,你必须要处理很多事情,使用MVC框架是有意义的,而Django是python的自然选择,除非你需要花哨的现代功能,例如websockets支持。 它附带了一个关于设置机器的精彩教程(适用于wsgi:http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/

    Django(与大多数MVC一样)负责处理您的请求有什么好处 - 所以您不仅可以实现无扩展,而且可以实现完全类似REST的访问。

    使用MVC框架,您基本上可以从面向页面的网站转移到真正的Web应用程序......大括号!

    从这个答案开始,你应该能够在stackoverflow和serverfault上找到这么多相关的Q& As ......