Как написать это правило? - PullRequest
1 голос
/ 04 декабря 2011

Мне нужна помощь с правилом перезаписи, я не могу заставить его работать.

Старый URL выглядит примерно так:

/A/B-C.html 

или

/A/B-C.html#postD 

A: одно или несколько слов объединены с "-".
B: число
C: одно или несколько слов, соединенных с "-", могут содержать цифру.
D: число

Типичный пример:

/general-discussion/1234-how-are-you.html 

или

/general-discussion/1234-how-are-you.html#post5678  

Новый URL будет выглядеть как

/t1234-how-are-you.html

или

/t1234-how-are-you.html#post5678  

Я придумал следующий формат, но он не может соответствовать ни одному URL:

RewriteRule ^/[a-z][-a-z]+/([1-9][0-9]*-.+\.html(#post[0-9]+)?)$ /t$1 [R=301,L,QSA]  

1 Ответ

1 голос
/ 05 декабря 2011

Стоит отметить, что часть URL-адреса «Фрагмент» (бит после #) предназначена только для браузера и не передается на веб-сервер, поэтому вы не можете сопоставить ее.

Следующее правило должно работать для вас.

RewriteRule ^[a-z][-a-z]+/([0-9]+-[a-z0-9-]+\.html)$ /t$1 [R=301,L,QSA]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...