[英].htaccess for site in sub-directory using Yii framework
我已經查看了幾個子目錄中網站的htaccess配置示例,並嘗試了其中大部分沒有100%成功。
我的設置是:
public_html/.htaccess
public_html/mysite
目錄中 public_html/mysite/frontend/www/index.php
所有請求 網址的狀態 :
www.mysite.com
工作正常[ok] www.mysite.com/controller/action
向我顯示主頁[錯誤] www.mysite.com/mysite/frontend/www/controller/action
工作正常[錯誤,上面的項目應該工作] 我的.htaccess目前看起來像這樣:
AddHandler application/x-httpd-php53s .php .html
Options +SymLinksIfOwnerMatch
IndexIgnore */*
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^(www.)?mysite.com$
RewriteCond %{REQUEST_URI} !^/mysite/frontend/www
RewriteRule ^(.*)?$ /mysite/frontend/www/index.php [L]
我已經嘗試了一切,但我不知道為什么www.mysite.com/controller/action不起作用:(
任何幫助將非常感激! 謝謝!
我發現這個類似問題的答案很有幫助。 以下是我的重寫規則的結果:
#Forward all non-existent files/directories to Yii
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) subdir/index.php/$1 [QSA,L]
這將獲取所有不存在的文件/文件夾,並將它們發送到yii腳本,並附加初始URL。 QSA附加可能存在於初始URL中的任何查詢字符串。
你不需要編輯.htaccess。 您只需將Yii條目腳本(index.php)和默認的.htaccess從子目錄移動到webroot(以便它們直接駐留在public_html下)。 將index.php和.htaccess移動到根目錄后,所有Web請求將直接路由到index.php(而不是子目錄),從而消除了url的/子目錄部分。
移動文件后,您需要編輯index.php以更新對yii.php文件(在Yii框架目錄下)以及Yii配置文件(main.php)的引用。 最后,您需要將assets目錄直接移動到webroot,因為默認情況下,Yii希望assets目錄與入口腳本位於同一位置。
這應該是您需要做的所有事情,但如果您需要更多細節,我會在這里完整地描述這種方法:
我也沒有更新.htaccess
文件,更容易修改子域的httpd.conf
虛擬主機,並將DocumentRoot
更改為指向yii文件夾。
您沒有提及是否為Yii的Url Manager配置了干凈的URL。 你需要,否則Yii希望“路線”顯示為名為“r”的GET參數。 如果您沒有,請參閱權威指南的此部分
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.