2011-07-30 15 views
1

我想使用也稱爲「語義/友好/ SEO URL」的「智能URL」來從python腳本獲取內容。但是我不想創建所有文件(每個項目都依賴於URL子路徑)。在Python服務器上使用Python獲取友好的URL或.htaccess


要使用的數據存儲在一個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來做到這一點?

+0

您是否使用任何python web框架? –

+0

@Charles Ma:不,我試着從頭開始寫。 – Thammas

+1

@Thammas我對你的尊敬!祝你好運! –

回答

4

使用Web框架。即使像Flask這樣的最小公司也能爲您提供正確的URL路由,並能夠定義您自己的URL模式。另外,它幾乎肯定會比通過CGI執行你的Python腳本更快地工作更多

+0

感謝您的意見。我很好奇......爲什麼腳本會變慢?你有鏈接嗎? – Thammas

+2

每次訪問URL時,CGI都會啓動一個新的python解釋器。如果不是這種情況,大多數Python框架都使用WSGI。 – XORcist

+0

@DanielRoseman我接受這個答案。我在FastCGI中使用[web.py](http://webpy.org)。現在對我來說更容易! – Thammas

3

隨着htaccess你可以使用此規則

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

有了這個規則,如果我的網頁有鏈接(如mysite.com/blog/12345)你知道哪個網址將被搜索引擎索引? mysite.com/blog/12345或mysite/com/blog?article = 1234? – Thammas

+1

確保當你從你的其他頁面鏈接,你只使用「漂亮」的鏈接,這將被搜索引擎索引... – Vish