我有一个 CMS 系统,可以将丑陋的 URL 转换为更友好的 URL。
到目前为止的实例,而不是页面 url 是这样的:
/pagebase.php?id=3644
我为每个页面设置了一个 url 写入设置,以使其更友好。
例如:
RewriteRule ^/events$ /pagebase.php?id=3644 [I]
这样当用户输入 domain.com/events 时,他们会拉到 url 上方。
这适用于几乎所有页面,除了这个我需要添加额外的查询字符串以便我可以做这样的事情。
www.domain.com/events?y=2010=&m=&1d=2
那将重写为
www.domain.com/pagebase.php?id=3366&y=2010=&m=&1d=2.
唯一的问题是 url 写入匹配失败,因为它没有将 ?y=2010=&m=&1d=2 视为查询字符串,而是将其视为 url 的一部分并失败。
我需要修改我的重写文件以允许通过查询字符串。
我想做类似 RewriteRule ^/events-%QUERYSTRING% $ /pagebase.php?id=3644 + %QUERYSTRING% [I]
它从匹配中删除查询字符串,然后将其附加到写入的 url 的末尾。我只是对 url 重写如何做到这一点没有足够的知识。
这是我的重写文件的示例。
RewriteRule ^/events$ /pagebase.php?id=3644
RewriteRule ^/faqs$ /pagebase.php?id=3659
RewriteRule ^/gallery$ /pagebase.php?id=3645
RewriteRule ^/gifts$ /pagebase.php?id=3646
我需要适用于所有页面的东西,我不想修改每个规则来处理特定的查询字符串,我只想要一个通用的解决方案来传递查询字符串。