【问题标题】:Get friendly URLs with Python or .htaccess使用 Python 或 .htaccess 获取友好的 URL
【发布时间】:2011-10-16 13:34:28
【问题描述】:

在 Linux 服务器上使用 Python,我想使用“智能 URL”(也称为“语义/友好/SEO URL”)从 Python 脚本中获取内容。但我不想创建所有文件(每个项目一个,具体取决于 URL 子路径)。


要使用的数据存储在 python 字典中,这是文件位置:

http://mysite.com/blog/data.py


现在,我使用这个系统来获取内容(使用 .htaccess):

http://mysite.com/blog?article=myfirst_article_id
>>> return "The content of myfirst_article"


目标是做同样的事情,但没有查询字符串:

http://mysite.com/blog/first_article_id
>>> return "The content of myfirst_article"


是否可以使用 python(并且没有 .htaccess)以及如何做到这一点?
如果没有,如何使用 .htaccess?

【问题讨论】:

  • 你在使用任何 python 网络框架吗?
  • @Charles Ma:不,我试着从头开始写。
  • @Thammas 向你致敬!祝你好运!

标签: python .htaccess redirect friendly-url


【解决方案1】:

使用网络框架。即使是像 Flask 这样的最小化程序也会为您提供正确的 URL 路由,并能够定义您自己的 URL 模式。此外,它几乎肯定会比通过 CGI 执行 Python 脚本快很多

【讨论】:

  • 感谢您的建议。我很好奇......为什么脚本会更慢?有链接吗?
  • CGI 每次访问 URL 时都会启动一个新的 python 解释器。大多数 Python 框架使用 WSGI,但情况并非如此。
  • @DanielRoseman 我接受这个答案。我将web.py 与FastCGI 一起使用。现在对我来说更容易了!
【解决方案2】:

通过 htaccess 你可以使用这个规则

RewriteEngine On
RewriteRule ^blog/([0-9]+)$ /blog/data.py?article=$1 [L]

【讨论】:

  • 有了这条规则,如果我的页面有链接(比如 mysite.com/blog/12345),你知道哪个 url 会被搜索引擎索引吗? mysite.com/blog/12345 或 mysite/com/blog?article=1234 ?
  • 确保当您从其他页面链接时,您只使用“漂亮”链接,并且该链接会被搜索引擎索引...
猜你喜欢
  • 2011-12-17
  • 1970-01-01
  • 2015-06-20
  • 2021-07-23
  • 1970-01-01
  • 1970-01-01
  • 2013-08-31
  • 2012-06-03
相关资源
最近更新 更多