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

Mod_rewrite красивый URL-адрес, когда домен / foo является каталогом

Начнем с чего-то очень простого:

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.