Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从框架集中的新选项卡隐藏url_Php_Html - Fatal编程技术网

Php 如何从框架集中的新选项卡隐藏url

Php 如何从框架集中的新选项卡隐藏url,php,html,Php,Html,我的问题是: 我想在url中隐藏参数,因此任何页面都只能显示www.website.com 我为index.php页面添加了一个框架集 当用户点击此页面中的任何链接时,它是完美的 但如果用户通过右键单击->在新选项卡或窗口中打开链接 将显示带有参数的整个URL 有什么办法可以防止用户通过“在新选项卡中打开”在框架集中打开页面?嗯,像这样隐藏URL通常不是一个好主意,但您可以尝试以下方法: <a href="somepage.php" onclick="location.href=this.

我的问题是:

我想在url中隐藏参数,因此任何页面都只能显示www.website.com

我为index.php页面添加了一个框架集

当用户点击此页面中的任何链接时,它是完美的

但如果用户通过右键单击->在新选项卡或窗口中打开链接

将显示带有参数的整个URL


有什么办法可以防止用户通过“在新选项卡中打开”在框架集中打开页面?

嗯,像这样隐藏URL通常不是一个好主意,但您可以尝试以下方法:

<a href="somepage.php" onclick="location.href=this.href;return false;">Link</a>

一般来说,要实现这一点,您需要将服务器设置为以这种方式运行。它通常被称为URI的,或“漂亮的URI的”。这也是在RESTful感官中设计应用程序的一个关键组件

如果您有权访问服务器配置,并且正在运行LAMP堆栈,则可以使用.htaccess文件完成此操作。但是您仍然需要服务器端脚本来处理其余的请求

下面是一个将删除扩展名和查询的.htaccess文件示例:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(([^/]+/)*[^.]+)\.php /$1 [R=301,L]
但如果您确实想要精确的URI,那么无论如何都应该参考RESTful

还有另一篇关于.htaccess和“漂亮URL”的教程

使用.htaccess:thx,但我需要更改此查询中的任何脚本吗?我的服务器是IIS 7,我使用此查询创建了一个htaccess文件,并导入到IIS 7,但仍然显示参数SIIS 7不支持apache的.htaccess文件。这里有一篇关于转换它们的文章。但考虑到我不认识IIS,我实在帮不了什么忙。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(([^/]+/)*[^.]+)\.php /$1 [R=301,L]