[英]Add prefix to route using apache2 mod_rewrite
我正在嘗試使用apache2的mod_rewrite為我的symfony2 2.1項目中的所有路由添加前綴。
假設我的symfony2項目的根目錄位於/ var / www / ProjectFrontEnd。
我要實現的是讓用戶使用http://www.mydomain.com/Project訪問項目
我已經在我的虛擬主機中設置了它:
DocumentRoot var/www/ProjectFrontEnd
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/Project/(.*)$ /var/www/ProjectFrontEnd/web/app.php/$1 [QSA,L]
當我查看重寫日志時,我可以看到路由已按預期進行了rewrite '/Project/' -> '/var/www/ProjectFrontEnd/web/app.php/'
( rewrite '/Project/' -> '/var/www/ProjectFrontEnd/web/app.php/'
),但出現404錯誤從symfony和日志說沿request.ERROR: Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException: No route found for "GET /Project/" (uncaught exception)
行request.ERROR: Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException: No route found for "GET /Project/" (uncaught exception)
我不明白為什么symfony2仍然使用未重寫的網址...
我想指定在symfony的routing.yml中給我的路由添加前綴不是一種選擇。
我想要實現什么?
這樣就不可能,因為symfony將每次重寫都當作一條完整的路徑來處理。
您可以只在app/config/routing.yml
使用prefix
。 我知道添加每個路由都是必要的,但是這是最簡單,最可靠的方法。
acme_user:
resource: "@AcmeUserBundle/Controller/"
type: annotation
prefix: /Project
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.