0

我已使用 get 参数将所有 .html 页面重定向到 process.php,现在我想清理查询 url。

我已经像这样重定向了。

RewriteEngine on
RewriteRule ^([^/]*)/(.*\.html) /Site/process.php?dir=$1&page=$2 [R=301,L]

这给出了这样的网址。

http://localhost/Site/process.php?dir=Directory&page=page.html

我想像这样将此网址清理回原始网址,并且仍然能够发布获取参数。

http://localhost/Site/Directory/page.html

我试过这样。

RewriteEngine on
RewriteRule ^([^/]*)/(.*\.html) /Site/process.php?dir=$1&page=$2 [R=301,L]
RewriteRule ^Site/$1/$2([^/.]+)/?$ [L]

但它什么也没做。

请查看并建议任何可能的方法。

谢谢。

编辑

这些 html 页面实际上不存在,只是页面中的链接,我想处理这些链接以使用 php 和 htaccess 从数据库制作页面,保持 url 完整,可以这样做。

4

2 回答 2

0

部分答案and still be able to post get parameter(将完整的原始查询字符串传递给脚本):

RewriteRule some.html some-other.php?%{QUERY_STRING} [L]

可能会有所帮助。

于 2012-12-16T09:14:32.410 回答
0

如果您只是想将“html”部分留在地址栏中以制作“漂亮的 URL”,只需取消[R]标记,并删除第二条规则。重定向将发生在服务器上,但浏览器仍然有.htmlURL。

于 2012-12-17T05:34:38.023 回答