嘿伙计们 - 我正在使用像这样的var传递链接来跳过网站...
<a href = "index.php?content=about.html">
...问题是,我在网址中看到了所有丑陋的var信息。我通常会使用post方法隐藏它,但我没有任何表单标签,所以它甚至可能吗?
感谢!!!!!!!
答案 0 :(得分:5)
这是一个坏主意。 GET用于读取,POST用于更新。更好的解决方案是使用某种mod_rewrite来制作友好的URL。通常称为SEO友好的URL ...
是的,你可以使用&lt; a href进行POST ...但是你必须有很多丑陋的javascript才能做到这一点......这打破了所有类型的标准约定。
更新,合并一些新信息
@FDisk下面有一个最简单的解决方案,但我会为它添加一个条件,它允许现有文件直接由网络服务器传递,而不必通过PHP运行它:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]*)$ /index.php?content=$1 [L]
这样,如果该图像存在,将直接从文件系统提供对/images/bar.png的请求。
请注意,您的网页不一定需要“.html”。因此,您的网址可能如下:http://example.com/about
,然后转换为:index.php?content=about
从帖子中列出的链接向前迈进一步,然后您可以解析各种参数的网址。您查找的示例分别将它们填入[$_GET, $HTTP_GET_VARS, $_REQUEST]
,但我认为这不是一个好主意。只需制作自己的参数数组。
答案 1 :(得分:2)
您可以尝试使用mod_rewrite扩展
原始网址:
http://www.youwebsite.com/index.php?content=的 about.html 强>
重写的网址:
http://www.youwebsite.com/的 about.html 强>
.haccess 文件内容:
RewriteEngine On
RewriteRule ^([^/]*)$ /index.php?content=$1 [L]
答案 2 :(得分:0)
您可以通过编码隐藏信息(var名称和内容)。因此,用户将无法理解或改变您传递的内容。但他仍然会在他的网址上看到一些东西。
我想你应该使用更多的上下文来理解为什么你不能使用直接链接到静态页面?