繁体   English   中英

如何使用jquery从URL中删除index.php?

[英]How to remove index.php from to url with jquery?

我喜欢用jquery从网址中删除index.php

我尝试此代码,但不断重新加载页面

$(document).ready(function(){
   var href=document.location.href;
   if(href.indexOf("index.php")){
       document.location.href = href.replace( "index.php", "" );
   }   
});

如何删除和不连续刷新页面?

您可以使用历史记录对象来实现此目的。

history.pushState(null,pagetitle,chageUrL);

其中pagetitle是新页面标题(如果需要更改),而changeUrl是您要设置的新网址

但是请记住,IE v <8不支持此功能

请参考以下链接,以更好地理解这一点:

修改URL而无需重新加载页面
http://www.w3schools.com/jsref/obj_history.asp
https://developer.mozilla.org/zh-CN/docs/Web/Guide/API/DOM/Manipulating_the_browser_history

实际上这里不需要jQuery,原始JavaScript就足够了

您的代码的问题是您正在与-1进行比较,这在JavaScript中真正具有价值

if(-1){ alert('i am here') /* the code here will be executed */}

您可以在控制台中尝试:!!-1 // => true

因此,您必须检查其是否大于-1或0(因为在此index.php不能在字符串的开头)

if(window.location.href.indexOf('index.php') > -1) // or 0 
window.location.href = window.location.href.replace('index.php', '');

我会说在客户端执行此操作是错误的逻辑。 实际上,您不能(不应)在客户端编辑URL以用于修饰目的

您可以在服务器端使用htaccess mod进行此操作(假设您已经拥有一个Apache服务器,因为您正在URL中编辑一个PHP页面) 将以下行添加到服务器目录(页面所在的位置)中的htaccess文件中

例如在www.example.com/test中 ,将以下行放入测试目录('.htaccess')文件中

DirectoryIndex index.php index.html site-down.php

因此,当您访问www.example.com/test时,您会看到index.php页面。

不要在客户端编辑URL! 这不是一个好的做法,也不是对SEO的好处。
即使您有其他不同的服务器,例如nGinx / ISIS等。也应在服务器端正确执行此操作! 我可以理解它是否用于从网址中删除“ #id”等。
适用于您现有的代码。 但是编辑目标页面是不行的!

我建议您阅读现有的stackOverflow页面。
Apache友好的网址
创建真正的用户+搜索引擎友好的网址。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM