2015-04-03 113 views
1

我正在嘗試創建一個Apache重寫規則,該規則將刪除部分Silex應用程序的URL。我只想在Apache中保留一個虛擬主機,因此使用虛擬主機不是解決方案。在Apache的DocumentRoot的是在/ var/WWW/和Silex的index.php文件是在/ var/WWW/ROR_V2 /網絡/Apache重寫規則,從Silex路由中刪除部分URL

我想是有這個網址:http://my-site.org/ROR_V2/user/login

點在我的Silex應用這條路線:/用戶/註冊

我都試過了,我失敗了,我不明白這一點。

我的Apache的conf文件(我沒有使用的.htaccess)看起來是這樣的:

DocumentRoot /var/www 

<Directory /var/www/ROR_V2> 
    Options -Indexes 
    Options FollowSymLinks MultiViews 
    AllowOverride All 
    Order allow,deny 
    allow from all 
    Require all granted 
    RewriteEngine On 
    RewriteBase /web 
    LogLevel warn rewrite:trace8 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^ROR_V2/(.*) $1 
    RewriteRule^index.php [QSA,L] 
</Directory> 

我也得到一個

請求的URL /web/index.php沒有被發現這臺服務器。

其他回答在這裏和那裏找不到幫助,所以我決定在這裏提問。預先感謝您的幫助。

編輯:所以我最後做的是硬編碼Silex的路線內的網址,使得它在形式的配置參數:$app['BASE_URL']='ROR_V2',當我爲我的督促服務器上 和 $app['BASE_URL']='' ...當我正在測試。 當然,這是醜陋的,不令人滿意的,應該屬於網絡服務器配置...

回答

0

我真的不明白你的需求的目的(爲什麼你只使用Silex來登錄用戶?)但如果你想上/var/www/ROR_V2/web和所有其他URI http://my-site.org/ROR_V2/user/login點是基於/var/www/ROR_V2你可以這樣做:

RewriteEngine On 
RewriteCond %{REQUEST_URI} =/ROR/user/login 
RewriteRule^web/index.php [QSA,L] 

我刪除RewriteBase /web

+0

謝謝您的回答。 「/ user/login」僅僅是一個例子中的一條路線。底線是:我想用「/」作爲根(不是/ ROR_V2)編寫我的Silex應用程序,但有訪問者輸入my-site.org/ROR_V2/user/login URL,所有這些在my-site.org虛擬主機 – LocoNeko73 2015-04-08 00:37:44