2017-08-31 62 views
0

我已經安裝了yii2基本應用程序的網站,我的本地主機上的每件事情都可以正常工作,我只是通過克隆根據/public_html文件夾更新作曲者根的git回購從而部署我的應用程序,在遷移,都去finen之後,我加入 public_html/.htaccesspublic_html/web/.htaccess 文件具有以下規則集Yii2基本應用程序HtAccess規則

public_html/.htaccess

<IfModule mod_rewrite.c> 
    Options +SymLinksIfOwnerMatch 
    RewriteEngine On 
</IfModule> 

<IfModule mod_rewrite.c> 
    RewriteCond %{REQUEST_URI} ^/.* 
    RewriteRule ^(.*)$ web/$1 [L] 

    RewriteCond %{REQUEST_URI} !^/web/ 
    RewriteCond %{REQUEST_FILENAME} !-f [OR] 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^.*$ web/index.php 
</IfModule> 

public_html/web/.htaccess

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule . index.php 

UrlManager在config/web.php

'urlManager' => [ 
      'class' => 'yii\web\UrlManager', 
      'enablePrettyUrl' => true, 
      'showScriptName' => false, 
      'baseUrl' => sprintf(
        "%s://%s", isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off' ? 'https' : 'http', $_SERVER['SERVER_NAME'] 
      ), 
      'rules' => [ 
       ''=>'site/index', 
       'tos' => 'site/tos', 
       'privacy-policy' => 'site/privacy', 
       '<controller:\w+>/<id:\d+>' => '<controller>/view', 
       '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', 
       '<controller:\w+>/<action:\w+>' => '<controller>/<action>', 
       '<module:\w+>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>', 
      ], 

無論我做什麼,我總是降落在主頁上我在頁腳條款&條件聯繫和隱私權政策3個環節,他們都顯示在主頁儘管在地址欄中顯示的網址是正確地UrlManager transalated是正確的,但裝載的觀點始終是主頁,你。

注:我還沒有克隆的public_html文件夾以外的回購作爲Yii2指南說,相反,我已經克隆了public_html內混帳回購協議,我不認爲這是不可行的,因爲先進的應用程序的工作太多,如果克隆內publich_html而不是外界

+0

RewriteRule ^(。*)$ /index.php?/$1 [L]使用它來代替RewriteRule。 index.php文件。 –

+0

你在談論'的public_html /網頁/ .htaccess'聲明的規則?它仍然無法正常工作 –

回答

1

的Yii 2基本程序有作爲文檔描述和public_html內你不能安裝到放置在public_html目錄之外的,而是你必須重命名webpublic_html,然後克隆它的public_html目錄外如此它被重命名的文件夾(web - > public_html)內容覆蓋。