我有一个非常基本的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
两者似乎都很好,但两者都不存在。 我错过了什么?
您的第一个重写规则不需要RewriteCond ,这两个规则需要正确sorting。
你的第二条规则(用slides.html来做)是偶然的。 查询string不是%{REQUEST_URI} 。 你需要像下面这样的东西(未经testing):
RewriteCond%{QUERY_STRING} ^ q = \ d + $
RewriteRule ^ / $ slides.html [L]
RewriteRule ^ / $ home.html [L]
我添加了[L]标志来防止进一步的重写,但是如果你需要对URIpath做更多的事情,你可以删除它。