【发布时间】:2012-11-06 12:59:56
【问题描述】:
我正在尝试为具有两个查询字符串参数的页面重写 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]
最后,这个(帮助我通过example.com/fotograf/10/?fid=5之类的网址查看照片):
RewriteCond %{QUERY_STRING} ^fid=(.*)$
RewriteRule ^fotograf/(.*)/$ fotograf.php?aid=$1&fid=%1
但我不想在 URL 中看到任何问号或 & 符号。
不知何故,我需要检查哪些是(已)设置并相应地重定向,但我只是不知道如何实现这一点。
我该怎么做?
提前致谢。
【问题讨论】:
标签: .htaccess mod-rewrite url-rewriting query-string clean-urls