Почему RewriteRule не работает на моем wamp? - PullRequest
0 голосов
/ 18 ноября 2010

.htaccess:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^/category/([0-9]+)/?$ /category.php?category_id=$1 [NC,L]

Я положил файл в:
локальный / .htaccess

Страница "category.php" находится в:
локальный / сайт / category.php

Я пытался:
локальный / сайт / категория / 4 /

Но там сказано:

запрошенный URL / сайт / общедоступный / категория / 5 / не был найдено на этом сервере.

Кстати, я тестировал .htaccess с другим более простым правилом, и он работал.

1 Ответ

2 голосов
/ 18 ноября 2010

Прежде всего:

При использовании механизма перезаписи в файлах .htaccess префикс для каждого каталога (который всегда одинаков для определенного каталога) автоматически удален для сопоставления с образцом и автоматически добавляется после выполнения подстановки.

Таким образом, в случае корневого каталога документа удалите начальный / из образца:

RewriteRule ^category/([0-9]+)/?$ /category.php?question_id=$1 [NC,L]

Во-вторых, поскольку ваш базовый путь на самом деле /website/, а не /, измените базовый путь с помощью RewriteBase:

RewriteBase /website/

Обратите внимание, что этот базовый путь применяется ко всемправила в этом файле .htaccess.Таким образом, вы, скорее всего, захотите изменить только определенные правила, например:

RewriteRule ^website/category/([0-9]+)/?$ /website/category.php?question_id=$1 [NC,L]
...