Начнем с чего-то очень простого:
RewriteRule ^(.*)$ index.php?page=$1
Что, если я также хочу, чтобы работало следующее:
RewriteRule ^/foo$ /index.php?page=foo #/foo IS a directory
Кажется, это работает ТОЛЬКО если установлен флаг R, но тогда записывается полный некрасивый URL. Таким образом, кажется, я могу ПЕРЕПРАВИТЬ существующий каталог, но не переписывать его ... Может быть, с помощью .htaccess внутри самого каталога? Или какая-то магия PHP в /foo/index.php, например в заголовке (/index.php?page=foo)? Это будет работать? Будет ли это стандартом HTTP / оптимизирован для поисковых систем?
Пожалуйста помоги!
PS: Мне пришла в голову самая странная идея: перенаправить / foo в / not-a-dir, а затем переписать / not-a-dir в /index.php?p=foo теоретически должно работать ... Но ... Давай ... В самом деле?!?
Есть опция для mod_rewrite, чтобы он обрабатывал каталоги вместо передачи их в mod_dir:
RewriteOptions AllowNoSlash
Больше информации об этом можно найти на сайт документации apache.