【问题标题】:htaccess doesn't work with included ampersandhtaccess 不适用于包含的 & 符号
【发布时间】:2021-09-13 19:53:25
【问题描述】:

我需要传递额外的 get 变量,但它不适用于 & 符号。 任何想法我做错了什么? (最后一行)

前 3 行工作正常。

RewriteRule ^forums forum.php [NC,L]
RewriteRule ^fc/([0-9]+) forum.php?fc=$1 [NC,L]
RewriteRule ^ft/([0-9]+) forum.php?ft=$1 [NC,L]
RewriteRule ^ft/([0-9]+)/(0-9]+) forum.php?ft=$1&e=$2 [NC,L]

【问题讨论】:

  • 感谢分享您的努力,哪个网址无效,请在此处提及,谢谢。
  • 最后一个不起作用。前 3 部作品。

标签: apache .htaccess mod-rewrite url-rewriting friendly-url


【解决方案1】:

按照以下方式设置您的 htaccess。您可以从 4 条规则减少到 3 条规则。您需要在正则表达式中放置锚点以避免误报匹配,而 uri 在规则中匹配。

请确保在测试 URL 之前清除浏览器缓存。

RewriteEngine ON
RewriteRule ^ft/([0-9]+)/([0-9]+)/?$ forum.php?ft=$1&e=$2 [NC,QSA,L]
RewriteRule ^(fc|ft)/([0-9]+)/?$ forum.php?$1=$2 [NC,QSA,L]
RewriteRule ^forums/?$ forum.php [NC,L]

【讨论】:

  • 谢谢,但仍然不适用于第二个变量。 if (isset($_GET['e'])) { 什么都没有发生 }
  • @exclude1987,哦,伙计,抱歉,规则中有错字(我从你那里复制并编辑了它们),你能检查一下我更新的规则吗?确保在测试 URL 之前清除浏览器缓存。让我知道情况如何。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-23
  • 1970-01-01
  • 2018-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多