2013-03-31 25 views
0

首先,我设置了我的重写规则,允许从URL中删除.html。mod_rewrite通过php脚本提供html页面

我也创建了一个php脚本,我想为所有的HTML页面提供服务。这样,我可以创建并链接到一个简单的html页面,但它将由我的php脚本处理。的

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^(.*)$ /folder/webpage.php?view=webpage_handler&file=$1.html [L] 

因此,而不是链接到www.mysite.com/page.html我链接到www.mysite.com/page,让我通过webpage.php

我将访问page.html中也希望能够链接到page.html在其他一些情况下(不删除.html扩展名),并仍然有我的webpage.php处理页面视图。

我已经试过:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^(.*)$ /folder/webpage.php?view=webpage_handler&file=$1.html [L] 

RewriteRule ^(.*\.(html))$ /folder/webpage.php?view=webpage_handler&file=$1 [L] 

但这不是那样的预期。我不确定第二条规则是否可以工作,而且我相信它们彼此冲突......但我不知道如何解决它。

有没有一种安全的方法可以让我链接到“/page.html”和“/ page”并获得预期的结果?

回答

0

经过更多的试验和错误之后,我了解到我所拥有的其实是正确的。出于某种原因,我的“视图”变量被擦除,导致我的脚本无法正常工作。

我的$ _GET ['view']变量在webpage.php中为空,但$ _GET ['file']变量的设置与它应该一样。

我从

view=webpage_handler 

改为

view=handle_webpage 

就是这样。现在它工作正常。显然这是我做的,但我不知道是什么。