0

所以我試圖創建一個獨特的永久鏈接,每次有人發佈在我的網頁上,我希望它是相對搜索引擎友好的,所以我已經做了一些小小的代碼來改變標題到一個很好的搜索引擎標題,它正在工作,但然後我的處理程序不能接受它。至少這是我認爲正在發生的事情,因爲網頁只是給了我一個404錯誤。 HTML工作正常,因爲當我重定向到靜態頁面時,它都會經歷。這裏是適用的代碼:需要幫助在谷歌應用程序引擎中創建永久鏈接

def post(self): 
    subject = self.request.get('subject') 
    content = self.request.get('content') 

    if subject and content: 
     p = Post(parent = blog_key(), subject = subject, content = content) 
     p.put() 

     id=str(p.key().id()) 

     subject = str(subject) 
     subject = subject.replace(' ', '25fdsa67ggggsd5') 
     subject = ''.join(e for e in subject if e.isalnum()) 
     subject = subject.replace('25fdsa67ggggsd5', '-') 
     subject = subject.lower() 

     url = '/blog/%s/%s' % (id, subject) 
     self.redirect('/blog/%s/%s' % (id, subject)) 

class PostPage(BlogHandler): 
    def get(self, post_id): 
     key = db.Key.from_path('PersonalPost', int(post_id), parent=blog_key()) 
     post = db.get(key) 

     if not post: 
      self.error(404) 
      return 

     self.render("permalink.html", post = post) 

class PersonalPost(db.Model): 
    subject = db.StringProperty(required = True) 
    content = db.TextProperty(required = True) 
    created = db.DateTimeProperty(auto_now_add = True) 
    last_modified = db.DateTimeProperty(auto_now = True) 
    user_id = db.StringProperty(required = True) 

    def render(self): 
     self._render_text = self.content.replace('\n', '<br>') 
     return render_str("post.html", p = self) 

def blog_key(name = 'default'): 
    return db.Key.from_path('blogs', name) 

app = webapp2.WSGIApplication([('/blog/([0-9]+)/([.*]+)', PostPage)] 

而當我再次只是重定向到主頁面,並列出他們,但不是當我嘗試引導到新的SEO頁面它的工作原理。

UPDATE:

我使用的測試網址是設置

subject = "test-url" 
id = "1234" 

的應用程序,然後引導我www.url.com/blog/1234/test-url,但它給了我一個404錯誤。

+1

這是您的實際縮進嗎?你似乎試圖在'post'函數中定義'PostPage'類,它永遠不會被調用...... – geoffspear

+0

當我粘貼它時,縮進被打亂了,我只是修復了它。縮進在實際代碼 – clifgray

回答

1

您在('/blog/([0-9]+)/([.*]+)中定義了兩個組,但是您的PostPage.get()只有一個。
將其更改爲def get(self, post_id, subject)或刪除第二組('/blog/([0-9]+)/[.*]+

+0

上都是正確的,但仍然沒有運氣......仍然得到了404。處理程序語法應該如何?是('/blog/([0-9]+)/([.*]+)好嗎? – clifgray

+0

@clifgray請提供您正在使用的測試網址的示例 –

+0

我剛更新了最後的更多信息 – clifgray