【问题标题】:.htaccess rewrite redirected url.htaccess 重写重定向的 url
【发布时间】:2012-12-17 13:34:38
【问题描述】:

我已将所有 .html 页面重定向到带有 get 参数的 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

我想像这样将这个 url 清理回原来的 url 并且仍然能够发布 get 参数。

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不变,可以这样做吗?

【问题讨论】:

  • docroot 是哪个目录?地点?或以上网站?
  • 如果您保留原始 URL 并将资源静默映射到 php 文件,那么您也在做同样的事情。此时,您正在将“漂亮”的 URL 重定向到“丑陋”的资源地址,但现在您想保留此资源地址,但再次显示“漂亮”的 URL,这将回到起点。..
  • @Felipe Alameda A- 这些 html 页面实际上不存在,只是页面中的链接,我想处理这些链接以使用 php 和 htaccess 从数据库制作页面,保持 url 完整,可以这样吗完成。
  • 您在@ 和我的用户名之间留了一个空格,所以我没有收到您的评论。我有点迷路了,但总的来说,资源(脚本)可以映射到一个地址,而浏览器显示一个“漂亮”的 URL,如果这就是你的要求的话。

标签: php html mod-rewrite


【解决方案1】:

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

【讨论】:

  • 它的工作。 RewriteRule ^([^/]*)/(.*\.html) /Site/process.php?dir=$1&page=$2 [L] 非常感谢。
  • 感谢您的反馈,很高兴能为您提供帮助!
【解决方案2】:

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

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

可能会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-21
    • 2015-03-04
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 2016-09-28
    • 2023-03-25
    相关资源
    最近更新 更多