【问题标题】:How to create a clean url using apache and php?如何使用 apache 和 php 创建一个干净的 url?
【发布时间】:2010-09-02 00:53:42
【问题描述】:

我已经构建了一个基本的博客应用程序,管理员可以在后端编写文章,用户可以从前端阅读。我想让我的 URL 变得漂亮,以便它变得对 SEO 友好。文章的网址看起来像,

http://example.com/news.php?id=22
http://example.com/news.php?id=23
http://example.com/news.php?id=24
http://example.com/news.php?id=25

我想让它干净并且对用户或 SEO 友好,我想要实现的是在数据库的新闻表中我有一个名为 title 的列名,我想将它显示为 URI 以及日期的组合。例如,我希望 URL 像

http://example.com/news/01092010/this-is-first-news-title

我该怎么做。有什么文章对我有帮助吗?

提前致谢

【问题讨论】:

    标签: php


    【解决方案1】:

    我的建议是使用 mod-rewrite 将所有内容定向到您的索引页面,使用类似这样的内容...

    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . index.php [L]
    

    然后,一旦所有内容都指向您的索引,请创建一个front controller,它会查看请求并加载相应的页面。

    与尝试使用 mod rewrite 做所有事情相比,它更简单/更容易维护

    【讨论】:

    • +1 表示前端控制器的想法。我认为这是处理它的最佳方式,尤其是如果您有 MVC 风格的架构。
    • .htaccess 规则是否也适用于子目录?我不希望将规则应用于子目录。
    • 您可能希望将 QSA 添加到该规则的末尾。
    【解决方案2】:

    【讨论】:

    • 我正在 Windows 机器上测试我的代码,使用 WAMP 服务器,我无法在我的 www 目录中创建 .htaccess 文件,它要求提供文件名。我该怎么办?
    • 通过 FTP 创建 .htaccess。当您尝试这样命名文件时,Windows 的行为很有趣。
    【解决方案3】:

    看看ModRewrite

    例如,您可以使用地图将 id 链接到文本

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-09
      • 1970-01-01
      • 2011-04-25
      • 1970-01-01
      相关资源
      最近更新 更多