2014-08-29 157 views
-1

您能否让我知道如何在PHP或HTML中将网页名称隐藏起来?例如,如果我有这样的:从URL中隐藏文件名

www.mydomain.com/about.html 
www.mydomain.com/project.html 
www.mydomain.com/contact.php 

只显示为:

www.mydomain.com 

我已经看到了使用

这一招以下内容添加到您的.htaccess文件:

####### 
#Allow PHP/HTML pages to load without the filename extension 
###### 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^(.*)$ $1.html 

但这只能删除扩展名。谢谢

+3

请不要这样做。您无法在您的内容中创建深层链接,从而提供了令人恐怖的用户体验。 – Hirnhamster 2014-08-29 19:56:01

+0

你为什么想这样做?也许你可以用另一种方式完成你想要的东西。 – Dehli 2014-08-29 20:15:11

回答

0

不可能。您无法将地址栏中显示的浏览器更改为该级别。这是一个主要的安全问题。 YOu可以做简单的事情,比如隐藏文件扩展名或将查询参数更改为“路径”组件,但是无法说服用户的浏览器从根本上对他们撒谎。

在这种情况下,您唯一的希望就是使用<frameset>,这样地址栏会保留在您的顶级页面中,并且单个页面会被埋在<frame> s之内。即使这是毫无意义的。将任何页面的地址“隐藏”在这样的框架内是无足轻重的。

0

您可以使用iFrame。

<iframe src="about.html" name="nameOfFrame" frameborder="0" width="100%" height="100%"> This is the text that will be displayed for browsers not supporting iframes. </iframe> 

这将包裹整个页面的iframe,所以你会做您的index.html页上,并把你的index.html页面的内容并把它放在“/home.html”的什么。

对于一个超链接的iframe之外你只是做

<a href="page.html" target="nameOfFrame">Hey guys!</a> 

可能不是这里最好的方法,但它会“工作” ..一个缺点是,如果有人直接进入“MYDOMAIN。 com/about.html“,它会将它们带到地址栏中带/about.html的页面。这种方法也使观众很难分享您的网页。

另一种方法是使用AngularJs和UIRouter。我只使用它一点,所以我不能只是抛出一些代码,就像我用内联框架,但你可以在这里阅读更多关于它:https://github.com/angular-ui/ui-router

希望这有助于!