php - 将两个 $_GET 变量拆分为路径

标签 php regex apache mod-rewrite

我正在尝试编写一个重写规则,其工作原理如下:

www.sitename.com/products.php?p=product&c=category 

应该变成

www.sitename.com/product/category

我已经尝试了以下方法,但我的正则表达式知识还很不理想,并且以下方法不起作用

RewriteRule ^(.*)/(.*)$ products.php?p=$1&c=$2 [QSA,L]

非常感谢任何帮助!

最佳答案

您可以在 DOCUMENT_ROOT/.htaccess 文件中使用此代码:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/([\w-]+)/?$ products.php?p=$1&c=$2 [QSA,L]

RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)\.html$ $1.php [NC,L]

关于php - 将两个 $_GET 变量拆分为路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27235815/

相关文章:

python - 如何在python中进行CamelCase拆分

javascript - 正则表达式替换链接

c# - 从字符串中获取最后一组数字,做数学运算,重建回字符串?

将数据插入数据库的 PHP 脚本在执行时返回成功,但记录未插入数据库?

javascript - JS在页面中进行字符串替换

php - WordPress 通过 wp_insert_comment() 插入注释

linux - 访问某些 index.php 或 index.html 时出现 Apache 403 错误,尽管每个 index.php 或 index.html 具有相似的权限

python - 为什么运行 python 脚本会导致 Apache 出错

php - mongodb 日期聚合运算符时区调整与 php

javascript - 如何在 PHP 中提交后禁用提交按钮?