我有一个非常基本的 html 演示文稿,我想使用 Apache mod_rewrite 来处理 URL。
home.html
只是一个介绍页面,但我希望在没有REQUEST_URI
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^ home.html
slides.html
渲染所有幻灯片。我使用 handlebars.js 从 .json 文件中提取数据,然后根据以下 URL 结构渲染每张幻灯片:/?q=N
RewriteCond %{REQUEST_URI} ^/\?q=\d+$
RewriteRule ^ slides.html
两者似乎都运行良好,但当两者同时存在时则不行。我遗漏了什么?
答案1
您的第一个重写规则不需要,RewriteCond
并且两个规则需要正确排序。
您的第二条规则(与 slides.html 有关)意外起作用。查询字符串不是 的一部分%{REQUEST_URI}
。您需要类似以下内容(未经测试):
重写条件 %{QUERY_STRING} ^q=\d+$ 重写规则 ^/$ slides.html [L] 重写规则 ^/$ home.html [L]
我添加了 [L] 标志以防止进一步重写,但如果您需要对 URI 路径执行更多操作,则可以将其删除。