MOD_REWRITE No input file specified

2010-12-21 阅读 206

Rewrite mod,apache的一个模块。我们最早开始使用是为了能够完成伪静态,后来发现在站点地址的重构上也有很多帮助。但是一直搞得我头晕的却不是技术本身,而是每次更换不同的服务器后,不同的服务器环境对rewrite规则的影响。

太多的时候,总是寄希望于服务器配置人员的水平以及合理化的配置。事实是,还是不太一样的。

简单的说,规则配置可以放在apache的配置文件里或者目录下的.htdaccess里面。在同一台服务器上的这两个不同的文件中,规则的书写没有什么不同;即使在同一文件,但不同的服务器上,可能所不同的。

今天遇上的问题,也就是本站遇到的问题,先看看在本地开发时的代码:

<pre class="brush:php;">    RewriteEngine on  
RewriteCond $1 !^(index\.php|css|js|images|robots\.txt|(.*)\.html|uploads)  
RewriteRule ^(.*)$ index.php/$1 [L] 

```
<p>
	&nbsp;</p>
<p>
	上传到服务器上,发现无法使用,服务器环境apache FastCGI模式。多次尝试之后,目前的代码:</p>
<pre class="brush:php;">    RewriteEngine on
RewriteRule ^blog/(.*)$ index.php/blog/$1
```
<p>
	&nbsp;</p>
<p>
	Ps:</p>
<ol><li>
		修改之后的代码,可以看到RewriteRule后面的'blog/',目前看就是这里影响了规则。由于受到空间环境的限制,无法使用rewrite log进行更详细的调试。</li>
	<li>
		在线空间,四博互联(<a href="http://www.4bo.cn" target="_blank">www.4bo.cn</a>) PHP MySql空间。</li>
</ol>

mod rewite apache 错误

更新于 2023年03月28日