gpt4 book ai didi

.htaccess - 使用 .htaccess 为多个参数重写 URL

转载 作者:行者123 更新时间:2023-12-03 22:52:19 25 4
gpt4 key购买 nike

这个问题可能是重复的。但我没有找到任何适合我的解决方案。
我想重写 URL,其中我有一级和二级参数。第一个参数是 p第二个是 spwww.domain.com/home应该指向 www.domain.com/index.php?p=homewww.domain.com/projects/99应该指向 www.domain.com/index.php?p=projects&sp=99
我在 .htaccess 中怎么做?

目前我的 htaccess 如下,

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?p=$1
RewriteRule ^([^/]*)/([^/]*)\$ index.php?p=$1&sp=$2 [L]

这个 htaccess 的问题是它正确地指向一级 url。即,www.domain.com/home。但不是二级网址。 IE。 www.domain.com/projects/99

最佳答案

你必须分别对待规则。规则之前的所有条件仅适用于单个规则。以下规则不受先行规则及其条件的影响。你试图“链接”两个规则。第二个规则永远不可能匹配,因为第一个规则是一个改变语法的包罗万象的规则。除此之外,您必须确保第一条规则不会捕获不需要的请求。还要考虑是否要使用*+模式中的运算符。我建议你使用 +运算符,以便在为“页面”或“子页面”请求空值时有明确的错误消息。
因此,这可能更接近您要查找的内容:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?p=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ index.php?p=$1&sp=$2 [L]

关于.htaccess - 使用 .htaccess 为多个参数重写 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14786340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com