javascript - htaccess rewrite 的問(wèn)題
問(wèn)題描述
我有個(gè)thinkphp開(kāi)發(fā)的網(wǎng)站,企用了mod rewrite
<IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfModule>
thinkphp 和程序運(yùn)行正常,現(xiàn)在我的需求是,我在網(wǎng)站根目錄的hot目錄下,放了一個(gè)vue開(kāi)發(fā)的小程序,并開(kāi)啟了histroy路由模式,按照開(kāi)發(fā)文檔說(shuō)明 為了讓所有的路徑都可以被服務(wù)器識(shí)別,也要通過(guò)RewriteRule 把所有的訪問(wèn) Rewrite到 index.hml上
也就是說(shuō)要把http://wwww.xxx.com/hot/item/1000 這樣的url 解析到/hot/index.html上,其它還是用thinkphp來(lái)控制,試過(guò)了好多配置 都不行,本人對(duì).htaccess文件命令不熟悉,所以希望大家給個(gè)方案
回復(fù)一樓的內(nèi)容,我也貼一下這里 vue 運(yùn)行也是正常的,在開(kāi)啟histroy 模式下,你進(jìn)入http://www.xxx.com/hot可以正常運(yùn)行,點(diǎn)擊各個(gè)鏈接也是可以正常跳轉(zhuǎn),因?yàn)閔tml5的histroy模式只是在瀏覽器段改變了url地址欄,并沒(méi)有向server請(qǐng)求數(shù)據(jù),但是當(dāng)用戶(hù)直接用 http://www.xxx.com/hot/item/1000 這樣的url來(lái)訪問(wèn)的時(shí)個(gè),由于server上并沒(méi)有這個(gè)文件 所以不會(huì)正常返回,但是通過(guò)apache的htaaccess文件可以把用戶(hù)訪問(wèn)不存在的文件跳轉(zhuǎn)到指定的文件上,就如我上面貼的thinkphp下的配置文件就是起這個(gè)作用,我現(xiàn)在的要求是把在/hot目錄下的請(qǐng)求 不要轉(zhuǎn)發(fā)給thinkphp來(lái)執(zhí)行,而是轉(zhuǎn)發(fā)個(gè)/hot/index.html來(lái)處理。
我嘗試如下
<IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_URI} ^/(hot|hot/.*)$ RewriteRule ^/hot/index.html$ - [L] RewriteRule ^(hot|hot/.*)$ hot/index.html$ [L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f #RewriteRule ^hot/(.*)$ hot/index.html$ #RewriteRule '.?' '-' [S=1] #RewriteRule ^/(hot|hot/.*)$ /hot/index.html$ [L] RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfModule>
但是不起作用,不知道為什么?
問(wèn)題解答
回答1:對(duì) thinkphp 不了解,可以看一下 thinkphp 的路由配置可否指定某一個(gè)目錄不同的路由方案
如果不行可能要用 nginx 了
回答2:解決了,原來(lái)的我想法是對(duì)的,一開(kāi)始老是被解析到主目錄的index.php原來(lái)是我的引用資源路徑的問(wèn)題貼出有效 配置
<IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_URI} ^/(hot|hot/.*)$ RewriteRule ^/hot/index.html$ - [L,NC] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(hot|hot/.*)$ hot/index.html [L] RewriteCond %{REQUEST_URI} !^/(hot|hot/.*)$ RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]</IfModule>
測(cè)試地址: http://www.wx2share.com/hot/如果不做url rewrite 直接通過(guò) 以上網(wǎng)址進(jìn)入,一切功能也是正常的,
但是如果通過(guò)如下網(wǎng)址進(jìn)入http://www.wx2share.com/hot/i...就會(huì)返回 404,但是做了 url rewrite 就可以正常訪問(wèn)了
相關(guān)文章:
1. docker綁定了nginx端口 外部訪問(wèn)不到2. javascript - 深夜被問(wèn)題困擾求解惑,rn的API之PermissionsAndroidd的問(wèn)題3. javascript - 最近用echarts做統(tǒng)計(jì)圖時(shí)遇到兩個(gè)問(wèn)題!!4. android權(quán)限被第三方安全軟件禁止,如何獲取該權(quán)限狀態(tài)5. docker images顯示的鏡像過(guò)多,狗眼被亮瞎了,怎么辦?6. mysql - 我的myeclipse一直連顯示數(shù)據(jù)庫(kù)連接失敗,不知道為什么7. git - webstorm窗口中左側(cè)列表的文件名顏色怎么修改8. Discuz! Q 有人用過(guò)嗎?9. javascript - onclick事件點(diǎn)擊不起作用10. android - 優(yōu)酷的安卓及蘋(píng)果app還在使用flash技術(shù)嗎?

網(wǎng)公網(wǎng)安備