php偽靜態後html不能存取怎麼辦

2020-09-25 15:00:48

php偽靜態後html不能存取的解決辦法:首先判斷檔案是否存在;然後設定存在則不rewirte,不存在且符合規則才rewrite;最後修改htaccess檔案即可。

推薦:《》

具體問題:

PHP偽靜態後不能存取純html檔案

.htaccess檔案

RewriteEngine on
RewriteRule index.html$ index.php
RewriteRule art.html$ project.php?file=art
RewriteRule music.html$ project.php?file=music
RewriteRule dance.html$ project.php?file=dance
RewriteRule radio.html$ project.php?file=radio
RewriteRule director.html$ project.php?file=director
RewriteRule perform.html$ project.php?file=perform
RewriteRule flight.html$ project.php?file=flight
RewriteRule ([a-zA-Z]+)-([0-9]+).html$ page.php?pageid=$2
RewriteRule ([a-zA-Z]+)-([0-9]+)-([0-9]+).html$ page.php?pageid=$2&info=$3
RewriteRule ([a-zA-Z]+)-([0-9]+)-rules-(.*)-([a-zA-Z]+).html$ page.php?pageid=$2&info=$3&file=$4
RewriteRule ([a-zA-Z]+)-([0-9]+)-([0-9]+)-([a-zA-Z]+).html$ page.php?pageid=$2&menuid=$3&file=$4
RewriteRule ([a-zA-Z]+)-([0-9]+)-([a-zA-Z]+).html$ page.php?pageid=$2&file=$3
RewriteRule ([a-zA-Z]+)-([0-9]+)-([a-zA-Z]+)-list([0-9]+).html$ page.php?pageid=$2&file=$3&page=$4
RewriteRule ([a-zA-Z]+)-([0-9]+)-([0-9]+)-([a-zA-Z]+)-list([0-9]+).html$ page.php?pageid=$2&menuid=$3&file=$4&page=$5
RewriteRule ([a-zA-Z]+)-([0-9]+)-([0-9]+)-(.*)-([a-zA-Z]+).html$ page.php?pageid=$2&menuid=$3&artid=$4&file=$5

而且我都已經把 RewriteRule index.html$ index.php 這句去掉了 但開啟的時候 還是反問偽靜態

我現在要存取網站裡的純靜態HTML檔案,同時又要求PHP的偽靜態也能存取,怎麼做?

解決辦法:

應該先判斷檔案是否存在,存在則不rewirte。不存在且符合規則才rewrite

例如:檔案或目錄不存在則rewrite到index.php,否則直接讀取存在的檔案。

<IfModule rewrite_module>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

以上就是php偽靜態後html不能存取怎麼辦的詳細內容,更多請關注TW511.COM其它相關文章!