2016-07-26 87 views
3

我想在web文件夾中添加另一個app_MYNAME.php。 這個文件與app.php幾乎相同。 唯一不同的是此項:Symfony .htaccess添加規則app_MYNAME.php

$kernel = new AppKernel('MYKERNELNAME', false);

我想加載這些方法不同的配置文件。

當我在瀏覽器中鍵入:

domain.de/app_MYNAME.php/VALUE

一切都很好。我想隱藏app_MYNAME.php。結果應該是這樣的:

domain.de/VALUE

第二步是重定向。當在瀏覽器中有人類型:

domain.de/MYNAME/VALUE

應該被重定向到:

domain.de/app_MYNAME.php/VALUE

我只能得到一個404misconfigured消息。

最後,我需要3個app_MYNAME.php文件(app_MYNAME1.php,app_MYNAME2.php,app_MYNAME3.php)。

我希望有人能解釋我,放在.htaccess文件中。

這裏是我的.htaccess文件:

DirectoryIndex app.php 

<IfModule mod_negotiation.c> 
    Options -MultiViews 
</IfModule> 

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$ 
    RewriteRule ^(.*) - [E=BASE:%1] 

    RewriteCond %{HTTP:Authorization} . 
    RewriteRule^- [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

    RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
    RewriteRule ^app\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L] 

    RewriteCond %{REQUEST_FILENAME} -f 
    RewriteRule^- [L] 

    RewriteRule^%{ENV:BASE}/app.php [L] 
</IfModule> 

<IfModule !mod_rewrite.c> 
    <IfModule mod_alias.c> 
     RedirectMatch 302 ^/$ /app.php/ 
    </IfModule> 
</IfModule> 

回答

0

嘗試用看起來像這樣在你的的.htaccess文件的配置:

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    # ... Your other stuff 

    # RewriteRule ^(.*)$ /app.php [QSA,L] 
    RewriteRule ^(.*)$ /app_MYNAME.php [QSA,L] 
</IfModule> 

此外,請確保您的nginx /阿帕奇主機文件指向Symfony項目的Web目錄。

+0

你好MeuhMeuh, 當我把你的重寫規則我有以下錯誤信息: '內部服務器錯誤 服務器遇到內部錯誤或配置錯誤,無法完成您的請求。 請聯繫服務器管理員,[email protected],並告知他們錯誤發生的時間,以及您可能造成錯誤的任何事情。 有關此錯誤的更多信息可能會在服務器錯誤日誌中提供。「 apache指向Web目錄。 – WebCyclone

0

試試這個:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ app_MYNAME.php [QSA,L] 

也許所有app.php都可以轉換成app_MYNAME.php在你的htaccess

+0

不起作用, 我想隱藏URI中的'app_MYNAME.php',我不想讓它們具有相同的名稱。 – WebCyclone