【问题标题】:PHP Pretty link url using .htaccess使用 .htaccess 的 PHP 漂亮链接 url
【发布时间】:2016-05-11 20:44:38
【问题描述】:

我使用 php mysql 开发了一个应用程序。以下是我的链接示例。

http://www.domain.com/index.php?page=product&product_id=123&type=virtual


http://www.domain.com/index.php?page=checkout&product_id=456&type=download

我想把它改成:

http://www.domain.com/product/123/virtual/
http://www.domain.com/checkout/456/download/

我知道它可以在 .htaccess 上使用重写模式进行更改,但是当我创建新页面时是否需要重写为 htaac​​cess?

wordpress 在他们的 .htaccess 文件中有 7 行(我认为)。

我可以在 .htaccess 上获得一个全局编码来实现我的目标吗?每次创建新页面时,我都懒得创建新的重写规则。我只需要遵守这条规则

http://www.domain.com/page/parameter/parameter/...

【问题讨论】:

  • 您可以将漂亮的网址映射到现有的网址。您必须更改现有链接,以匹配应用程序中的漂亮链接。假设您想要漂亮的网址作为规范形式。添加额外的规则很容易,但它可能会成为一个令人头疼的管理映射。我认为您的示例在可用性方面并没有多大意义。
  • @Progrock 抱歉。我不明白你在向我解释什么。我的应用程序网址很难重写吗?
  • 网站是否已经使用旧式链接?

标签: php mysql .htaccess mod-rewrite


【解决方案1】:

您需要将所有对不存在文件的请求重定向到 index.php 文件

Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# if file or directory exests, use it
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# else send request to index.php
RewriteRule . index.php

然后,在 index.php 中解析 URI 并显示必要的页面。

【讨论】:

  • 感谢您的宝贵时间。我是否只需将您的代码复制粘贴到我的 htaccess 文件中,然后我的所有页面都有漂亮的链接?
  • 除了 .htaccess,你还需要 index.php 中的一个逻辑来路由到正确的页面。
  • 是的,我已经使用 if($_GET['page'] == 'product'){ include 'product.php'; 在索引上路由页面}
  • 例如,如果在 index.php 中的 URL 是http://www.domain.com/product/123/virtual/,则可以这样解析成数组:$route = explode( '/' , $_SERVER['REQUEST_URI'])。现在$route[0] == product, $route[1] == 123, $route[2] == virtual 然后你编码:if($route[0] ...
  • 好的。我得到它。所以我只需要在 htaccess 上传递你的代码,然后路由页面。当我需要获取参数时,我只是使用爆炸 url 对吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-27
  • 2011-07-31
  • 1970-01-01
  • 2012-11-01
  • 2011-03-22
  • 1970-01-01
相关资源
最近更新 更多