.htaccess重写重定向的url

时间:2012-12-16 09:09:03

标签: php html mod-rewrite

我已将所有.html页面重定向到带有get参数的process.php,现在我想清理查询网址。

我已经像这样重定向了。

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完整,从数据库制作页面,可以这样做。

2 个答案:

答案 0 :(得分:1)

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

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

可能会有帮助。

答案 1 :(得分:1)

如果您只是想将“html”部分留在地址栏中以制作“漂亮的网址”,请暂停[R]标记,然后删除第二条规则。重定向将在服务器上进行,但浏览器仍将具有.html URL。