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

Правила перенаправления для .htaccess с помощью mod_rewrite

У меня есть PHP-скрипт, динамически генерирующий контент из базы данных на основе запросов. Пользователь может выполнить поиск в текстовом поле по имени пользователя «mark». Содержимое предоставляется PHP по адресу www.domain.com/?username=mark, хотя я хотел бы, чтобы пользователь видел обслуживающий URL как www.domain.com/username/mark.html. Точно так же пользователь может искать по профилю (целому числу). Контент создается на www.domain.com/?profile=2. Я хочу, чтобы пользователь видел обслуживающий URL как www.domain.com/profile/2.html. Это выполнимо?

Вот мой файл .htaccess:

 RewriteEngine On
 RewriteRule ^username/([^/]*)\.html$ /?username=$1 [L]
 RewriteRule ^realname/([^/]*)\.html$ /?realname=$1 [L]
 RewriteRule ^profile/([^/]*)\.html$ /?profile=$1 [L]

Mod_rewrite включен, но этот файл не работает.

Ваш код должен работать, возможно, он вообще не выполняется. Вы можете попытаться сделать опечатку и посмотреть, дает ли Apache ответ 500.

Кроме того, вы можете попробовать использовать следующий htaccess. Добавлен index.php, чтобы гарантировать, что вызывается правильный файл.

RewriteEngine On
RewriteRule ^username/([^/]*)\.html$ /index.php?username=$1 [L]
RewriteRule ^realname/([^/]*)\.html$ /index.php?realname=$1 [L]
RewriteRule ^profile/([^/]*)\.html$ /index.php?profile=$1 [L]