gpt4 book ai didi

php - HTACCESS : Dynamic rewrite url with multiple variables

转载 作者:搜寻专家 更新时间:2023-10-31 21:04:18 25 4
gpt4 key购买 nike

我已经为此工作了几天,我想知道是否有人可以指出正确的方向......我正在尝试在我的重写中传递两个变量。

除非给定的 url 是一个文件或目录,否则我希望所有的 url 都被动态重写如下:

example.com/category -> example.com/index.php?p=category
example.com/category/page -> example.com/index.php?p=category&article=page
example.com/category2/page -> example.com/index.php?p=category2&article=page

我很难尝试将以下内容变成动态的:
重写规则 ^category/(.+?)$ ?p=category&article=$1 [L]

我正在尝试这个,但它不起作用:
重写规则 ^(.+?)/(.+?)$ ?p=$1&article=$2 [L]

...也在尝试这个,但它也不起作用:
重写规则 ^(.*)/(.+?)$ ?p=$1&article=$2 [L]

我试图避免输入以下内容以使其工作:
RewriteRule ^category2/(.+?)$ ?p=category2&article=$1 [L]

完整代码如下:

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^category/(.+?)$ ?p=category&article=$1 [L]

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

更新:

这实际上是为我做的:

RewriteRule ^([^/]+)(/([^/]+))? ?p=$1&article=$2 [L]

谢谢!!安德鲁

最佳答案

我不是专家,但我认为这会为您做到这一点:

RewriteEngine On

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

其中 [^/]+ 匹配除 / 之外的所有内容,结果是在 htaccess.madewithlove.be 上测试的

enter image description here


编辑:

因为我完全忘记了第二个参数是可选的,OP 中的重大更新几乎做到了,除了它在参数 2 的开头添加了 /值,因为 $2 正在捕获外部组,而我们需要内部组,如下图所示:

enter image description here


Instead$2 替换为 $3这应该可以解决它:

RewriteRule ^([^/]+)(/([^/]+))? ?p=$1&article=$3   [L]

enter image description here

关于php - HTACCESS : Dynamic rewrite url with multiple variables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35259266/

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