我尝试通过.htaccess
文件重定向用户以创建友好的URL
示例:
用户界面URL:https://example.com/courses/1
htaccess角色
RewriteEngine On
RewriteRule ^courses/([0-9]{1})$ /courses.php?page=$1
输出URL:https://example.com/courses.php?page=1
一切正常,现在我需要向URL添加其他查询参数,例如http://smart-courses.com/courses/1?p1=1&p2=2
,因此,我需要htaccess
将我重定向到https://example.com/courses.php?page=1&p1=1&p2=2
我尝试创建一个新角色来检查p1
和p2
是否存在并重写URL
RewriteRule ^courses/([0-9]{1,5})?lid=([0-9]{1,})&did=([0-9]{1,})$ /courses.php?page=$1&p1=$2&p1=$3
此外,我尝试在([0-9]{1,5})
(页码)之后添加任何字符,并将其放在?page=1
之后,但没有成功
RewriteRule ^courses/([0-9]{1})\?(.*)$ /courses.php?page=$1&$2
1条答案
按热度按时间wsxa1bj11#
查询字符串不是规则模式匹配的URL的路径部分的一部分。如果你必须从查询字符串中捕获一些东西,你需要使用
ReuestCond
,这是有文档记录的。但是在这种情况下,你甚至不需要捕获任何东西:QSA
标志将潜在的查询字符串添加到(重写的)目标URL中。重写模块会注意在此处使用正确的串联(&
字符)。同样,此行为已记录在案:https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html你自己看看:htaccess.madewithlove.com