【问题标题】:mod_rewrite RewriteRule with REQUEST_URImod_rewrite RewriteRule 与 REQUEST_URI
【发布时间】:2015-04-28 03:14:15
【问题描述】:

如何指定 mod_rewrite RewriteRule 以使用 REQUEST_URI 作为它检查的模式,而不是文件的完整目录路径?

目前,我可以通过 GET 参数传递 URI,如下所示:

(.+) topicview.php?topicname=%{REQUEST_URI}

但我希望(.+) Pattern 匹配 REQUEST_URI 本身,而不是目录路径,这很难看,看起来像 data/2/2/3233/user/21212/morestuff/more/topicview.php

【问题讨论】:

  • 您要发送到 Web 服务器的 URL 是什么,您的重写规则是什么?
  • 用户输入的网址是“domain.com/topicview/user-friendly-text-here”
  • 但是,我的服务器出于某种原因在内部将该 URL 视为“data/2/2/3233/user/21212/morestuff/more/topicview.php” - 请参阅我的其他问题stackoverflow.com/questions/28688075/…
  • 好的,让我来解决你的另一个问题。

标签: php apache .htaccess url mod-rewrite


【解决方案1】:

根据我在Network Solutions hosting URL looks weird for Apache server 对您的其他问题的回答,请尝试使用 RewriteCond 来捕获您想要的值:

RewriteCond %{REQUEST_URI} ^(.*)$
RewriteRule . topicview.php?topicname=%1 [L]

注意 %1 而不是 $1,它允许您使用在 RewriteCond 中捕获的值。

【讨论】:

    猜你喜欢
    • 2011-09-29
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多