Перенаправить с помощью mod_rewrite - PullRequest
0 голосов
/ 30 января 2012
Options +FollowSymLinks
Options +Indexes
RewriteEngine on
RewriteBase /
RewriteRule ^haveg/employer/([0-9]+)/(.*) haveg/employer.php?msg_id=$1

Хорошо работает, когда я использую

http://localhost/haveg/employer/7003/the-message-title
or
http://localhost/haveg/employer/7003/

Проблема здесь http://localhost/haveg/employer/7003, потому что я удалил косую черту в конце. выдает страницу не найденную ошибку.

Ответы [ 3 ]

2 голосов
/ 30 января 2012

RewriteRule ^ хэг / работодатель / ([0-9] +) /? (. *) Хэг / Employer.php? Msg_id = $ 1

Я думаю, что добавление вопросительного знака должно позволить ему соответствовать.

0 голосов
/ 30 января 2012

Я предлагаю вам добавить еще RewriteRule, чтобы прояснить свое намерение. В этом коде первое правило обрабатывает случай, когда URL-адрес заканчивается цифрами, за которыми следует необязательный слеш (когда поле запроса msg_id не заполнено), а второе применяется, когда после цифр есть сообщение.

RewriteRule ^haveg/employer/([0-9]+)/?$ haveg/employer.php?msg_id=
RewriteRule ^haveg/employer/([0-9]+)/([^/]+)$ haveg/employer.php?msg_id=$1 [L]
0 голосов
/ 30 января 2012

Попробуйте изменить последнюю строку на

RewriteRule ^haveg/employer/([0-9]+)([^0-9]*) haveg/employer.php?msg_id=$1

Это должно принять оба случая.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...