Назад | Перейти на главную страницу

Правило Apache mod_rewrite для передачи определенного REQUEST_URI в определенные html файлы

У меня очень простая презентация 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.