发布网友 发布时间:2022-04-06 02:17
共2个回答
懂视网 时间:2022-04-06 06:39
php伪静态后html不能访问的解决办法:首先判断文件是否存在;然后设置存在则不rewirte,不存在且符合规则才rewrite;最后修改htaccess文件即可。
推荐:《PHP视频教程》
具体问题:
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>
热心网友 时间:2022-04-06 03:47
这应该是防止网站漏洞的一个措施(网管设置了不能修改htm后缀的文件,防止病毒注入),我的网站也是这样,你这里还能够直接覆盖,我的这个必要要把源文件删除,再重新上传才可以