繁体   English   中英

根据点击的链接更改网址(JavaScript html)

[英]Change url based on the clicked link (Javascript html)

我有问题,或者最好是对如何做有疑问。

让我们解释一下:我有一个类似于博客的网站,我在其中撰写文章,这些文章显示在首页中。 我希望每次单击文章都将其重定向到显示文章内容的页面。 我将每篇文章的标题,日期,内容等保存在数据库中。我的疑问是:我应该为每篇文章创建一个.html文件还是仅创建一个名为“ article.php”的文件,当我打开它时,更改从数据库获取数据的内容?

第二个问题:我希望页面的URL根据单击的文章而改变。 例如,我单击名为“ Today and Tomorrow”的文章,我希望URL显示为“ mysite / today-and-to-明天/”,而不是“ mysite / article.php”。 我对此主题有些困惑,所以如果有人可以帮助我,我会很高兴。 感谢您的建议。

我努力了

var link = 'www.example.com/training/product.html'; link.split('.html')[0]; window.history.replaceState( null, null, link );

但是它会动态更改URL,因此会出现几秒钟的原始URL,在我的情况下,它显示为“ mysite / article.php”,然后更改为“ mysite / today-and-明天”。 我认为这是不正确的。

我也试过

function openArticle(title){
        var rightTitle = $(title).text();
        rightTitle = rightTitle.toLowerCase();
        rightTitle = rightTitle.substring(rightTitle .indexOf(':')+2); 
        rightTitle = rightTitle.replace(/[^A-Z0-9]+/ig, "-");
        event.preventDefault();
        window.location.href = title.href + "/" + rightTitle;

    }

但是,当我单击元素时,“ article.php”仍保留在URL中

我应该为每篇文章创建一个.html文件还是仅创建一个名为“ article.php”的文件,当我打开它时,它都会更改从数据库获取数据的内容?

不,你不必。 您可以将商品ID作为“ 查询字符串 ”传递给“ article.php”,它将为最终用户提供适当的商品。

我希望页面的URL根据我单击的文章而更改。 例如,我单击名为“ Today and Tomorrow”的文章,我希望URL显示为“ mysite / today-and-to-明天/”,而不是“ mysite / article.php”。

您正在谈论的是一种称为“ URL重写”的功能,该功能可以生成美观且有意义的URL。 为了实现它,您需要:

  1. 以一种可以将文章ID映射到其标题的方式设计数据库(用于创建别名)
  2. 您必须在Web服务器中启用URL重写 (例如,如果您使用Apache作为Web服务器,则需要启用mod_rewrite )。
  3. 您必须在将规则的URL映射和路由到原始URL时嵌入规则,该文件名为.htaccess 作为示例如何为seo友好的url编写htaccess重写规则

我只是想帮助您从技术角度全面了解您要寻找的内容,正如您所知,这不可能在一个帖子中就覆盖您所需的信息。

暂无
暂无

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

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