Mod 重写 - 在已经重写一个查询字符串之后再添加一个查询字符串
Mod Rewrite - Additional Query String After Already Rewriting One Query String
提前感谢您的帮助,因为我非常讨厌 mod_rewrite 并且无法理解它!
我目前在我的 .htaccess 中有一个规则,将查询字符串中的两个参数转换为漂亮的 URL。
RewriteRule ^projects/([^/]+)/([^/]+)/?$ single-project.php?id=§ion= [L]
例如,这会将 URL /single-project.php?id=5§ion=documents 转换为 /projects/5/documents/
我想要做的是有一个额外的查询字符串(通过新规则)将 /projects/5/documents/?subfolder=PDFs 转换为 /projects/5/documents/PDFs/
一些注意事项:
- 这个额外的查询字符串可能并不总是存在
- 只有当 URL 是 /projects/[ANY_ID]/documents/
时,此查询字符串才需要工作
我希望这是有道理的,希望你能提供帮助!
干杯
使用您显示的示例,请在您的 .htaccess 文件中尝试遵循以下规则。请确保在测试 URL 之前清除浏览器缓存。已在规则文件中添加注释以供理解。
RewriteEngine ON
##Op's already present rules, added 1 more flag in it QSA.
RewriteRule ^projects/([^/]+)/([^/]+)/?$ single-project.php?id=§ion= [NC,QSA,L]
##Newly added Rule to perform internal rewrite for project id here.
RewriteRule ^(projects)/([^/]+)/([^/]+)/(.*)/?$ ///?subfolder= [NC,QSA,L]
提前感谢您的帮助,因为我非常讨厌 mod_rewrite 并且无法理解它!
我目前在我的 .htaccess 中有一个规则,将查询字符串中的两个参数转换为漂亮的 URL。
RewriteRule ^projects/([^/]+)/([^/]+)/?$ single-project.php?id=§ion= [L]
例如,这会将 URL /single-project.php?id=5§ion=documents 转换为 /projects/5/documents/
我想要做的是有一个额外的查询字符串(通过新规则)将 /projects/5/documents/?subfolder=PDFs 转换为 /projects/5/documents/PDFs/
一些注意事项:
- 这个额外的查询字符串可能并不总是存在
- 只有当 URL 是 /projects/[ANY_ID]/documents/ 时,此查询字符串才需要工作
我希望这是有道理的,希望你能提供帮助!
干杯
使用您显示的示例,请在您的 .htaccess 文件中尝试遵循以下规则。请确保在测试 URL 之前清除浏览器缓存。已在规则文件中添加注释以供理解。
RewriteEngine ON
##Op's already present rules, added 1 more flag in it QSA.
RewriteRule ^projects/([^/]+)/([^/]+)/?$ single-project.php?id=§ion= [NC,QSA,L]
##Newly added Rule to perform internal rewrite for project id here.
RewriteRule ^(projects)/([^/]+)/([^/]+)/(.*)/?$ ///?subfolder= [NC,QSA,L]