0

首先,我设置了重写规则以允许从 URL 中删除 .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,它允许我通过 pages.php 访问 page.html

我还希望能够在其他一些情况下链接到 page.html(不删除 .html 扩展名)并且仍然让我的 pages.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”并获得预期的结果?

4

1 回答 1

0

经过更多的尝试和错误,我了解到我所拥有的实际上是正确的。出于某种原因,我的“视图”变量被删除了,这导致我的脚本无法正常运行。

我的 $_GET['view'] 变量在webpage.php 中是空白的,但是$_GET['file'] 变量的设置是应有的。

我从

view=webpage_handler

view=handle_webpage

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

于 2013-04-01T01:19:10.030 回答