.htaccess - .htaccess - RewriteRule 在另一个 RewriteRule 之后附加到 URL 的末尾
问题描述
我成功执行了 1 个 RewriteRule。然后,我希望将第二个 RewriteRule 附加到第一个 RewriteRule 生成的 URL 的末尾。
我有以下代码:
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^sports/football/?$ /sports/2018-19/sport_page.php?sport_id=1 [NC]
RewriteRule ^2018-19?$ %{REQUEST_URI}&season_id=39 [L,QSA,R]
第一个 RewriteRule 有效 - 如果在 URL 中找到“sports/football/”,它会根据请求重定向。
然后我想检查 URL 中是否存在“2018-19”,如果存在,我想将“&season_id=39”附加到第一个 ReWriteURL 的结果末尾。
用户访问:http://domain/sports/football/2018-19/
第一次重写规则:http://domain/sports/2018-19/sport_page.php?sport_id=1
第二次重写规则:http://domain/sports/2018-19/sport_page.php?sport_id=1&season_id=39
解决方案
您的 RewriteRule 需要检查完整的 URL 路径。
RewriteRule ^sports/football/2018-19/?$ %{REQUEST_URI}?season_id=39 [L,R]
上述规则将生成重定向循环错误,因为模式和目标路径相同。要解决此问题,您可以将以下内容放在RewriteCond
规则之前。
RewriteCond %{QUERY_STRING} ^$
上面的 RewriteCond 确保当 URI 为/sports/2018-19? query staring
.
推荐阅读
- c# - linq 对两个不同范围的值求和
- excel - 为什么字母和数字的组合大于数字?
- azure - Azure 函数发布
- ios - Angular 8 站点未在 iOS(iPhone 和 iPad)浏览器上加载,但在所有其他经过测试的设备上加载
- python - wxPython:只有主线程可以处理 Windows 消息错误
- ios - 将 JSON 文件解码为不同的目标数组
- java - 如何使用 Java 将整个命令行输出打印到外部文件
- python - 为什么我的预测值几乎相同(并且与平均值相似)?
- javascript - Google 的 onSuccessHandler 没有响应
- objective-c - Mac Catalyst 应用程序如何处理生命周期转换?