2012-07-30 16 views
0

我在束Symfony2的。自定義網址的問題。 URL編碼

/{category} 

以下的路徑,而且我有類別名稱爲

Category/Brand 

如果URL是這樣的:

domain.com/Company/Brand 

然後我收到錯誤500有關/符號。

但是,如果在樹枝我做

company.name|url_encode() 

然後我得到

Company%2F%Brand 

(代碼可能是錯的,不記得現在)

但儘管如此Symfony的告訴我,有沒有匹配

和路由給我404

我怎樣才能解決這個問題?

+0

你能指定500錯誤的文本嗎? – 2012-07-30 19:43:04

回答

0

好的!

我找到了解決辦法here

 

    #PUBLICATION URL 
    ###_publication: 
     pattern: /{username}/{category}/{publicationid} 
     defaults: { _controller: ###:Default:publication } 
     requirements: 
      _method: GET 
      category: .+ 
      username: .+ 
      publicationid: \d+        
    #CATEGORY - should be at very end, to match all other URLS 
    ###_category: 
     pattern: /{category} 
     defaults: { _controller: ###:Default:category } 
     requirements: 
      _method: GET 
      category: .+ 


0

如果你的路由/ {}類和您鍵入的是domain.com/Company/Brand的URL,錯誤是正常的。

你必須配置在這樣的routing.yml路線:

Company/{category} 
+0

我到底需要domain.com/company/brand或公司%%%%品牌或類似這樣的東西。 – 2012-07-30 21:03:43

1

是你的所有類別的名字一樣,一個或只有一些?

如果所有的人都遵循這一結構,你可以改變的路線:

/{company}/{brand} 

並改變相應的控制器接受兩個變量,而不是一個。後來你可以連接它們或者做任何你需要的東西

如果只有它們中的一些具有這種結構,你可以嘗試用控制器中的某個字符組合替換目錄分隔符,它創建鏈接,然後在該路線的控制器。例如,在控制器的模板,其中的鏈接顯示,你可以

$nameEncoded = str_replace ('/','%%%%',$companyName); 

通這個變量的模板,並用它來生成的鏈接,然後在接收控制器做:

$nameDecoded = str_replace ('%%%%','/',$companyName);