В вашем .htaccess у вас есть 'index.php', ему нужен слеш ... '/index.php'
# Enable rewrite engine and route requests to framework
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /index.php [L,QSA]
в противном случае, когда он попытается переписать / about /, он будет искать /about/index.php, а не просто корень /index.php
У меня просто возникла другая мысль ... возможно, что altought mod_rewrite установлено, возможно, произошла ошибка с сервером, из-за которой он не переписывает ..
Если приведенный ниже глобальный маршрут не работает, вы можете попробовать переписать
RewriteRule ^/google http://www.google.com [L,NC];
Вы также можете попробовать глобальный маршрут для каталога
F3::route('GET /about/*','about');
но это означает, что что-нибудь под domain.com/about/ ...... что угодно ... будет перенаправлено на функцию about ...
Примечание о mod_rewrite и FF
Как вы сказали, FF дает вам 404, потому что он ожидает '/' вместо '/index.php' ... Однако, это index.php, который ожидает разницу ..
Чтобы продемонстрировать это, я полагаю, вы можете продублировать
F3::route('GET /','home');
как
F3::route('GET /index.php','home');
и страница должна отображаться ...
Причина этого в том, что вы просто переходите в каталог / (или /index.php) любым способом, как Apache обслуживает страницу index.php ....
mod_rewrite позволяет вам перенаправить / about и перенаправить его на index.php. Так что, если ваше правило перезаписи не работает, перенаправление / перезапись не произойдет, и вы получите 404 ...
Как я уже говорил выше, протестируйте mod_rewrite с правилом Google .. затем попробуйте перейти к http://localhost:80/google
если он не перенаправляет вас в Google, значит ваш движок перезаписи не работает ... (возможно, проблема с конфигурацией Windows ..)
чтобы включить mod_rewrite под windows:
Откройте ваш http.conf
Найдите эту строку:
#LoadModule rewrite_module modules/mod_rewrite.so
убрать отметку комментария (#) из строки ... так что у вас есть:
LoadModule rewrite_module modules / mod_rewrite.so
Сохраните файл и перезапустите apache ..
Поочередно .. Я думаю, вы можете просто сказать:
LoadModule rewrite_module modules/mod_rewrite.so
в начале вашего файла htaccess ...