javascript - htaccess rewrite 的問題
問題描述
我有個thinkphp開發(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目錄下,放了一個vue開發(fā)的小程序,并開啟了histroy路由模式,按照開發(fā)文檔說明 為了讓所有的路徑都可以被服務(wù)器識別,也要通過RewriteRule 把所有的訪問 Rewrite到 index.hml上
也就是說要把http://wwww.xxx.com/hot/item/1000 這樣的url 解析到/hot/index.html上,其它還是用thinkphp來控制,試過了好多配置 都不行,本人對.htaccess文件命令不熟悉,所以希望大家給個方案
回復(fù)一樓的內(nèi)容,我也貼一下這里 vue 運(yùn)行也是正常的,在開啟histroy 模式下,你進(jìn)入http://www.xxx.com/hot可以正常運(yùn)行,點(diǎn)擊各個鏈接也是可以正常跳轉(zhuǎn),因?yàn)閔tml5的histroy模式只是在瀏覽器段改變了url地址欄,并沒有向server請求數(shù)據(jù),但是當(dāng)用戶直接用 http://www.xxx.com/hot/item/1000 這樣的url來訪問的時個,由于server上并沒有這個文件 所以不會正常返回,但是通過apache的htaaccess文件可以把用戶訪問不存在的文件跳轉(zhuǎn)到指定的文件上,就如我上面貼的thinkphp下的配置文件就是起這個作用,我現(xiàn)在的要求是把在/hot目錄下的請求 不要轉(zhuǎn)發(fā)給thinkphp來執(zhí)行,而是轉(zhuǎn)發(fā)個/hot/index.html來處理。
我嘗試如下
<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>
但是不起作用,不知道為什么?
問題解答
回答1:對 thinkphp 不了解,可以看一下 thinkphp 的路由配置可否指定某一個目錄不同的路由方案
如果不行可能要用 nginx 了
回答2:解決了,原來的我想法是對的,一開始老是被解析到主目錄的index.php原來是我的引用資源路徑的問題貼出有效 配置
<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>
測試地址: http://www.wx2share.com/hot/如果不做url rewrite 直接通過 以上網(wǎng)址進(jìn)入,一切功能也是正常的,
但是如果通過如下網(wǎng)址進(jìn)入http://www.wx2share.com/hot/i...就會返回 404,但是做了 url rewrite 就可以正常訪問了
相關(guān)文章:
1. python - oslo_config2. 關(guān)于mysql聯(lián)合查詢一對多的顯示結(jié)果問題3. 實(shí)現(xiàn)bing搜索工具urlAPI提交4. MySQL主鍵沖突時的更新操作和替換操作在功能上有什么差別(如圖)5. 數(shù)據(jù)庫 - Mysql的存儲過程真的是個坑!求助下面的存儲過程哪里錯啦,實(shí)在是找不到哪里的問題了。6. windows誤人子弟啊7. 冒昧問一下,我這php代碼哪里出錯了???8. 如何用筆記本上的apache做微信開發(fā)的服務(wù)器9. 我在網(wǎng)址中輸入localhost/abc.php顯示的是not found是為什么呢?10. mysql優(yōu)化 - MySQL如何為配置表建立索引?
