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

时间:2017-03-03 00:13:34

标签: javascript php jquery html blogs

我遇到了问题,或者更好地对如何做有疑问。

让我们解释一下:我有一个类似博客的网站,我在那里写文章,它们会显示在主页上。我希望每次点击文章时,它都会将我重定向到显示文章内容的页面。我用标题,日期,内容等保存数据库中的每篇文章......我的疑问是:我应该为每篇文章创建一个.html文件,还是只创建一个名为" article.php"当我打开它时,它会改变从数据库获取数据的内容吗?

第二个问题:我希望页面的网址根据我点击的文章而改变。例如,我点击了名为"今天和明天"的文章,我希望URL显示为" mysite / today-and-tomorrow /",而不是" mysite / article.php&#34 ;. 我对这个话题有点困惑,所以如果有人能帮助我,我会非常开心。 谢谢你的建议。

我试过了

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

但它会改变网址,所以几秒钟后会出现原始网址,在我的情况下会出现" mysite / article.php"然后它会在" mysite /今天和明天"中发生变化。我不认为它是正确的。

我也试过

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"留在网址

1 个答案:

答案 0 :(得分:0)

  

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

不,你不必。您可以将文章ID作为“query string”传递给“article.php”,它将负责向最终用户提供适当的文章。

  

我想根据我点击的文章更改页面的网址。例如,我点击了名为“今天和明天”的文章,我希望URL显示为“mysite / today-and-tomorrow /”,而不是“mysite / article.php”。

你正在谈论一个名为“URL重写”的功能,它可以产生很好的效果。有意义的URL。为了实现它,您需要:

  1. 设计数据库的方式可以将文章ID映射到其标题。(用于创建别名)
  2. 您必须在网络服务器中启用网址重写。 (例如,如果您使用Apache作为Web服务器,you need to enable mod_rewrite)。
  3. 你必须嵌入你的映射规则&将好的URL路由到名为.htaccess的文件中的原始URL。作为样本How to write htaccess rewrite rule for seo friendly url
  4. 我只是试图从技术角度帮助您全面了解您的需求&如你所知,只能在一篇文章中覆盖你所需的信息。