Mod_rewrite htaccess вопрос - PullRequest
       3

Mod_rewrite htaccess вопрос

0 голосов
/ 23 октября 2009

Как я могу взять URL, как http://example.com/page.php?2342

И превратить его в

http://example.com/page/?2342

или это невозможно?

Ответы [ 3 ]

1 голос
/ 23 октября 2009

Вам не нужен mod_rewrite для этого. Вы можете использовать MultiViews .

Options MultiViews

в дополнение к другим вашим опциям. Вам нужно включить mod_negotiation на вашем сервере.

Из документов:

Эффект MultiViews как следует: если сервер получает запросить / some / dir / foo, если / some / dir имеет MultiViews, и / some / dir / foo не существует, то сервер читает каталог в поисках файлы с именем foo. * и эффективно подделывает карту типов, которая называет все эти файлы, присваивая им одинаковые типы медиа и контент-кодировки это было бы, если бы клиент попросил один из них по имени. Затем выбирает лучший матч с клиентом требования.

MultiViews также могут применяться к поискам для файла с именем Директива DirectoryIndex, если сервер пытается проиндексировать каталог. Если в файлах конфигурации укажите

DirectoryIndex индекс затем сервер будет арбитраж между index.html и index.html3, если оба присутствуют. Если ни присутствуют, а index.cgi есть там сервер его запустит.

Если один из файлов найден при чтении в каталоге нет расширение, распознаваемое mod_mime до обозначить его Charset, Content-Type, Язык или кодировка, то результат зависит от настройки MultiViewsMatch директива. это директива определяет, будут ли обработчики, фильтры и другие типы расширений могут участвовать в согласовании MultiViews.

0 голосов
/ 23 октября 2009

Нужен ли /? 2342, или вы могли бы сделать это так?

RewriteRule page/(\d*) page.php?id=$1

В противном случае это будет

RewriteRule page/\?(\d*) page.php?id=$1
1006
0 голосов
/ 23 октября 2009

Попробуйте это правило:

RewriteRule ^([^/.]+)/$ $1.php
...