【问题标题】:htaccess file to use forward slash instead of ?, = and & signs in query string?htaccess 文件在查询字符串中使用正斜杠而不是 ?、= 和 & 符号?
【发布时间】:2020-04-19 03:36:38
【问题描述】:

我正在创建一个小型电子商务网站。我们有一个项目列表,用户可以单击并浏览有关该项目的信息。我在查询字符串中传递了项目 ID 和其他一些信息,因此在下一页我可以从数据库中获取相关数据。

现在我们有以下 URL 默认结构:

www.somedomain.com/item.php?id=1&some1=somevalue&some2=somevalue

但我想要这样的 URL:

www.somedomain.com/item/1/somevalue/somevalue

其中itemitem.php/1/somevalue/somevalue 是查询字符串?id=1&some1=somevalue&some2=somevalue。我想要我的整个网站查询字符串参数如上。

我使用的是核心 PHP,没有框架。我对.htaccess 文件做了一些处理,但服务器在加载网站时出错。如何使用 .htaccess 文件执行此操作?

【问题讨论】:

标签: php .htaccess url-rewriting query-string friendly-url


【解决方案1】:

试试下面,我正在使用 mod_rewrite 来实现结果,如果使用任何以前的尝试,请清除缓存。

下面还将涵盖“_”下划线,之后的下一条规则将仅针对一项。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z\_]+)/([0-9]+)/([a-zA-Z]+)/([a-zA-Z]+)$ $1.php?id=$2&some1=$3&some2=$4 [L]
RewriteRule ^([a-zA-Z\_]+)/([0-9]+)$ $1.php?item=$2[L]

【讨论】:

  • 只限商品页还是全域?
  • 有什么问题?
  • 我使用你的文件并使用我想要的查询字符串调用页面,它说找不到。
  • 你必须叫这个 www.somedomain.com/item/1/somevalue/somevalue 对吧?
  • 是的,但没有找到
猜你喜欢
  • 2018-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2012-04-26
  • 1970-01-01
  • 2012-06-23
  • 2011-04-25
相关资源
最近更新 更多