簡體   English   中英

使用apache2 mod_rewrite為路由添加前綴

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM