yii2框架的advance版,框架開(kāi)啟了URL美化:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules'=>[
"<controller:\w+>/<id:\d+>"=>"<controller>/view",
"<controller:\w+>/<action:\w+>"=>"<controller>/<action>"
],
],
使用的apache服務(wù)器,項(xiàng)目backend目錄的web下配置.htaccess:
原來(lái)的配置是http訪問(wèn)的方式,可以正常訪問(wèn):
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
RewriteRule \.svn\/ /404.html
RewriteRule \.git\/ /404.html
加了阿里云的免費(fèi)ssl證書(shū)后,修改為如下后訪問(wèn)跳轉(zhuǎn)到https了卻是404:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
**ssl證書(shū)配置是:**
Listen 443
<VirtualHost *:443>
DocumentRoot "C:\WWW\demo1\backend\web"
ServerName test.ssl1.com
ServerAlias test.ssl1.com
<Directory "C:\WWW\demo1\backend\web">
Options FollowSymLinks ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
SSLEngine on
SSLProtocol all -SSLv2 -SSLv3
SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM
SSLHonorCipherOrder on
SSLCertificateFile "C:\Program Files\Apache\cert\ssl1\public.pem"
SSLCertificateKeyFile "C:\Program Files\Apache\cert\ssl1\214389064350038.key"
SSLCertificateChainFile "C:\Program Files\Apache\cert\ssl1\chain.pem"
</VirtualHost>
網(wǎng)上找了好多資料,求教各位大神怎么解決,不勝感激web目錄下的.htaccsee完整配置,不論是一級(jí)域名還是二級(jí)域名都可以訪問(wèn),已經(jīng)經(jīng)過(guò)測(cè)試:
Options +FollowSymlinks
IndexIgnore */*
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]
# 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
RewriteRule \.svn\/ /404.html
RewriteRule \.git\/ /404.html RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R]
以下補(bǔ)充
實(shí)現(xiàn)http轉(zhuǎn)https原理就是
原先訪問(wèn)80端口的轉(zhuǎn)443端口(也可以是其他端口,這個(gè)看你)
代碼角度就是
http://uri
/*變成下面*/
https://uri
這個(gè)可以基于服務(wù)器的重定向功能
你的服務(wù)器是apache的
以下的內(nèi)容都是基于apache說(shuō)明的
1首先必須開(kāi)啟重寫(xiě)規(guī)則這個(gè)模塊LoadModule rewrite_module modules/mod_rewrite.so
2寫(xiě)規(guī)則
所有重定向內(nèi)容從RewriteEngine On開(kāi)始看.
但是有一點(diǎn),規(guī)則可以寫(xiě)在apache的httpd文件,.htaccess這個(gè)實(shí)現(xiàn) 是基于httpd文件中 AllowOverride的值 設(shè)置允許下才生效,重寫(xiě)功能實(shí)現(xiàn)相當(dāng)于http文件的一個(gè)快捷方式,可以這么粗糙理解
這個(gè)是apache加載規(guī)則一個(gè)原理圖
apache加載第一個(gè)規(guī)則后
RewriteRule '正則匹配到內(nèi)容' '替換后uri' //這種格式
如果有 RewriteCond //相當(dāng)于進(jìn)入一層if判斷
至此完成一個(gè)規(guī)則加載,獲得替換后的uri 作為值 進(jìn)入下一規(guī)則匹配
實(shí)現(xiàn)http轉(zhuǎn)的https的規(guī)則代碼就這么點(diǎn),代碼一開(kāi)始已經(jīng)貼出來(lái)了.
你之所以不能生效在你的服務(wù)器上,是因?yàn)槠渌?guī)則干擾.
這是你可以找下你apache/log文件.看看錯(cuò)在哪里
可以在開(kāi)發(fā)模式中,你自己模擬下LogLevel alert rewrite:trace等級(jí) 將這個(gè)等級(jí)調(diào)高點(diǎn),生產(chǎn)模式的話則不要這么做不然會(huì)產(chǎn)生大量日志
然后在日志中分析,調(diào)整你規(guī)則位置 和匹配代碼
下面我示范下我的
其中我把等級(jí)調(diào)為8,可以看到整個(gè)規(guī)則匹配的走向流程
最后說(shuō)一點(diǎn),遇到翻官網(wǎng)文檔是最齊全的,別人寫(xiě)的也是基于官網(wǎng)修改的,
至于語(yǔ)言障礙,你可以用谷歌翻譯下
在補(bǔ)充一點(diǎn)httpd文件修改必須重啟apache
而.htaccess 修改不需要
還有瀏覽器會(huì)緩存你的重定向,這是你要試試其他url參數(shù).
ps:有可能你寫(xiě)對(duì)了,但是讀取了上一次的,這點(diǎn)我被坑過(guò)很慘T_T
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
北大課工場(chǎng)是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國(guó)家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國(guó)制造2025”,實(shí)現(xiàn)中華民族偉大復(fù)興的升級(jí)產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國(guó)職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。