У меня очень простая презентация 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
и эти два правила необходимо правильно упорядочить.
Ваше второе правило (связанное с slides.html) работает случайно. Строка запроса не является частью %{REQUEST_URI}
. Вам понадобится что-то вроде следующего (непроверенного):
RewriteCond %{QUERY_STRING} ^q=\d+$ RewriteRule ^/$ slides.html [L] RewriteRule ^/$ home.html [L]
Я добавил [L] флаги, чтобы предотвратить дальнейшую перезапись, но вы можете удалить их, если вам нужно сделать больше с путем к URI.