我想使用mod_rewrite剥离它的查询字符串的URL,但保留查询字符串的值,例如,id喜欢改变:
http://new.app/index.php?lorem=1&ipsum=2
干净利落:
http://new.app/
但保留lorem
和ipsum
的值,因此在index.php
内:
$_GET["lorem"]
仍会返回1
等。
这是我对mod_rewrite的第一次涉猎,所以非常感谢任何帮助,如果你能准确解释你的解决方案是如何工作的,我下次也可以学到一点!
谢谢!
答案 0 :(得分:0)
我不明白你想要什么。您的第一个网址是外部表单,用户可以看到并可以在其浏览器中输入。
第二种形式几乎删除了所有信息,因此当您将其发送到服务器时,服务器如何知道lorem=1&ipsum=2
?
如果您的问题确实是
如果用户位于网站深处,点击带有大量信息的网址,我如何使浏览器中的网址看起来不错呢?
然后有两种解决方案:
<frameset>
的HTML <frame>
中。这样,顶级窗口的URL不会改变,只有内部URL(浏览器不显示)。答案 1 :(得分:0)
正如 Roland 所提到的,您似乎并不了解重写的方式。它通常使用.htaccess中的Apache mod_rewrite来完成,它以 /index.php?lorem=1&ipsum=2
的方式将这些漂亮的URL重写为php脚本。即使Joomla使用.htaccess,除了它有一个重写规则将一切传递给PHP脚本,该脚本在PHP中进行实际重写。
你不理解的是,在php脚本的“漂亮”版本中仍然需要存在一些东西来拉取$ _GET [“lorem”]的值
所以它会像 http://new.app/lorem/ 或 http://new.app/section/lorem 那样(使用mod_rewrite)在.htaccess中)重写到php脚本。