我正在尝试为具有两个查询字符串参数的页面重写 url。并根据这些参数值(设置与否),在页面上显示不同的内容。
example.com/fotograf.php?aid=10
example.com/fotograf.php?aid=10&fid=5
上面的 URL 是未重写的示例。我只是想让它们
example.com/fotograf/10/
example.com/fotograf/10/5/
第一个 URL 链接到包含照片的相册,第二个 URL 链接到该相册中的照片。
在.htaccess
中,我只想能够通过上面的干净 URL 访问他们。之后,我将检查脚本顶部的 URL,如果它不干净,那么使用我编写的函数将其重定向到干净的 URL(通过使用 preg_match 和 preg_split 获取值并使用 header 函数重定向)。
到目前为止,我已经尝试过这个规则(这对查看专辑不起作用):
RewriteRule ^fotograf/([0-9-/]+)/([0-9]+)/?$ fotograf.php?aid=$1&fid=$2 [L]
然后,这个(总是重定向到专辑):
RewriteRule ^fotograf/([0-9-/]+)/?$ fotograf.php?aid=$1 [L]
最后,这个(帮助我通过类似的 URL 查看照片example.com/fotograf/10/?fid=5
):
RewriteCond %{QUERY_STRING} ^fid=(.*)$
RewriteRule ^fotograf/(.*)/$ fotograf.php?aid=$1&fid=%1
但我不想在 URL 中看到任何问号或 & 符号。
不知何故,我需要检查哪些(已)设置并相应地重定向,但我只是不知道如何实现这一点。
我怎样才能做到这一点?
提前致谢。