爲了學習的目的,我正在用symfony構建一個玩具網站。symfony2 .htaccess重定向問題的一條路線
當通過app_dev.php訪問開發模式的網站時,一切工作正常。
此外,在生產模式下,除了一個uri「/音樂」以外,一切都可以使用。在這裏,我遇到了一個奇怪的404錯誤,因爲重定向到「/ music /」。
經過一番研究,我嘗試了幾件事情,如下所述。但我總是得到同樣的錯誤。也許任何人都可以給我一個提示如何解決這個問題。
這裏是日誌條目,請注意,它搜索路由匹配「/音樂/」,而不是「/音樂」,因爲它發送到
[2013-10-23 21:01:37] request.ERROR: Uncaught PHP Exception Symfony\Component\HttpKernel\Exception\NotFoundHttpException: "No route found for "GET /music/"" at /var/www/symfony/runamusic.de/app/cache/prod/classes.php line 1883 {"exception":"[object] (Symfony\Component\HttpKernel\Exception\NotFoundHttpException: No route found for \"GET /music/\" at /var/www/symfony/runamusic.de/app/cache/prod/classes.php:1883, Symfony\Component\Routing\Exception\ResourceNotFoundException: at /var/www/symfony/runamusic.de/app/cache/prod/appProdUrlMatcher.php:197)"} []
我檢查的權限,服務器app/cache/prod,他們似乎沒問題
我雙方消除「應用程序/緩存/ PROD」清除的快取手動和運行php app/console cache:clear --env=prod --no-debug
而且運行php app/console router:match /music
提供了正確的路線
[email protected]:/var/www/symfony/runamusic.de$ php app/console router:match /music
Route "runamusic_music_album_index" matches
[router] Route "runamusic_music_album_index"
Name runamusic_music_album_index
Path /music
Host ANY
Scheme ANY
Method ANY
Class Symfony\Component\Routing\Route
Defaults _controller: Runamusic\MusicBundle\Controller\AlbumController::indexAction
Requirements NO CUSTOM
Options compiler_class: Symfony\Component\Routing\RouteCompiler
Path-Regex #^/music$#s
當在「應用程序/配置/路由引入路由.yml「沒有前綴加(我讀到重定向問題與前綴)
...
runamusic_home:
resource: "@RunamusicHomeBundle/Resources/config/routing.yml"
prefix: /
runamusic_music:
resource: "@RunamusicMusicBundle/Resources/config/routing.yml"
prefix: /
runamusic_show:
resource: "@RunamusicShowBundle/Resources/config/routing.yml"
prefix: /
...
這裏是路線定義」捆綁/.../合作nfig/routing.yml中」
runamusic_music_album_index:
pattern: /music
defaults: { _controller: RunamusicMusicBundle:Album:index }
runamusic_music_album_show:
pattern: /music/album/{title}
defaults: { _controller: RunamusicMusicBundle:Album:show }
...
從/音樂重命名模式,例如/MUSICA作品,在這裏沒有重定向。
重新定義在另一束的圖案/音樂產生相同的不希望的重新導向到/音樂/。
而且任何不存在的路由我試過被重定向(無重定向從/音樂到/音樂/)
我知道,一個可能的解決辦法是改變該路由的模式。但我想知道這裏出了什麼問題,以避免將來出現這種情況。
也許在.htaccess的重寫錯誤?
感謝您的幫助。
編輯3:刪除以前增加了
從來沒想過那個:) 不錯的工作 – ROLO