我試圖在一個Share Hosting環境中部署Yii2(基本模板)的小型項目。一切都在當地正常工作。 主機服務器就像下面的根目錄:Yii2 Pretty Url在Share Hosting(基本模板)中不起作用
/
---logs
---index.html
閱讀Yii2的doc後。然後刪除文件index.html並將我的項目文件夾上傳到根目錄。它現在看起來像這樣:
/
---logs
---assets
---commands
---config
---controllers
--- ...
---views
---web
--- ...
嘗試網站後,我有一個空白頁。於是我決定創建主機服務器的根目錄htaccess文件指向網絡文件夾喜歡這裏
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteCond %{REQUEST_URI} !web/
RewriteRule (.*) /web/$1 [L]
在這之後我能得到的索引頁非常好,
www.example.com
和當我嘗試訪問例如(與URL prettyUrl激活)時,我得到空白頁
www.example.com/articles/list
,但是當我停用prettyUrl,它那像工作例如
www.example.com/web/index.php?r=articles/list
在Web文件夾中的.htaccess是這樣的:
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php
# Disable Directory Browsing
Options All -Indexes
和URL規則在web.php設置文件如下:
'urlManager' => [
'class' => 'yii\web\UrlManager',
'showScriptName' => false,
'enablePrettyUrl' => true,
'baseUrl' => '/',
'rules' => [
...
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
],
],
我要做的第一件事就是在'.htaccess'文件中引入一些垃圾來檢查它是否被讀取。如果是這樣,訪問任何頁面時應該彈出一個錯誤500 – gmc
@gmc我做了它並且讀取了.htaccess文件。 – stfsngue