Что бы я хотел, если бы пользователь ввел:
www.mysite.com/test
Это перенаправит на страницу, которая будет искать в моей базе данных событие под названием test, и, если событие существует, покажет событие, перенаправляющее на страницу поиска.
Мне почти удалось заставить это работать - так близко, пока так далеко ...
Вот где я должен:
RewriteEngine On
RewriteRule ^([A-Za-z0-9-]+)/?$ show_events.php?q=$1 [NC,L]
Это работает в том смысле, что он перенаправляет на страницу show_events.php, которая ищет в БД точное совпадение и отображает событие, если оно находит, иначе оно перенаправляет на страницу поиска. Я очень доволен этим.
Проблема в том, что когда папка (www.mysite.co.uk/test/) уже существует, на странице ошибки появляется сообщение «эта страница не работает». Папка просто содержит HTML-страницу, которая отображает слово «привет». Если вы наберете www.mysite.co.uk/test/index.html, страница отобразится нормально, поэтому не похоже, что она не работает.
Я пришел к выводу, что страница поиска работает нормально, а код RewriteEngine - нет.
Этот пост выглядел так, как будто решил мою проблему, но не совсем:
Apache RewriteEngine - переписать все, что не существует, в index.php
Я думал, что добавление DPI в конце RewriteRule может решить проблему, но это не так.
Я действительно не понимаю RewriteEngine и просто бродю в темноте, используя метод проб и ошибок, может кто-нибудь мне помочь?