伪静态设置BUG

183425_iyH4_1391355.png

启用REWRITE的伪静态功能的时候,首页可以访问,而访问内页的时候,就提示:“No input file specified.”

原因在于使用的PHP是fast_cgi模式,而在某些情况下,不能正确识别path_info所造成的错误,Wordpress的伪静态也有一样的问题。

Wordpress程序默认的.htaccess里面的规则:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
“No input file specified.”,是没有得到有效的文件路径造成的。

修改伪静态规则,如下:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
有没有发现不同?

其实就是在正则结果“/$1”前面多加了一个“?”号,问题也就随之解决了。

 

 

但是 如果程序中已经有了伪静态设置 那么从伪静态重定向为另一个伪静态时 ?后的伪静态地址就失效了  这时需要直接用动态地址转换为伪静态

转载于:https://my.oschina.net/u/1391355/blog/719727

你可能感兴趣的:(伪静态设置BUG)