微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

htaccess 获取链接的第一个目录

如何解决htaccess 获取链接的第一个目录

我目前在一个 PHP 网站上工作,我对 htaccess 重写规则和条件非常缺乏经验。我的问题是如何才能从链接中只获取一个目录?

例如,我有一个链接“example.com/page1/page2/?something=something”,我需要输出为 page1,以便我可以将其重定向到 index.PHP?p=page1

还有我该怎么做才能得到“page2”或“?something=something”的输出?所以在这种情况下,我会将它重定向到 index.PHP?p=page1&ap=page2&something=something

我知道理论上我可以使用:

RewriteRule ^page1/page2$ index.PHP?p=page1&ap=page2

在这种情况下,我无法预测 page1 和 page2 将是什么,所以假设它就像一个变量:

RewriteRule ^{somevariable}/{someothervariable}$ index.PHP?p={somevariable}&ap={someothervariable}

在这种情况下,输出将是“index.PHP?p=page1&ap=page2”。

我试着在网上搜索这个,但我真的不知道要搜索什么。

提前致谢!

解决方法

您确实可以使用 RewriteRule 来解析 URL...

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

^               : Match the start of the string
 (.+?)          : Match any character one or more times; non-greedy
      /         : Match a slash
       (.+)     : Match any character one or more times
           /?   : Optionally match a slash
             $  : Match the end of the string

L               : Stops processing rules
QSA             : Append the original query string

示例

http://www.somewebsite.com/page1/page2?id=1435

print_r($_GET);

/*

Array
(
    [p]  => page1
    [ap] => page2
    [id] => 1435
)

*/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。