Переписать только часть URL - PullRequest
0 голосов
/ 06 марта 2012

У меня есть такой тип URL на моем сайте (как вы можете видеть, использование тире довольно случайно):

http://www.example.com/my_sub_directory/this--is--the-page-title---excellent-title
http://www.example.com/my_sub_directory/this-is--the--page-title--excellent-title
http://www.example.com/my_sub_directory/this-is-the-page----title---excellent---title

И я хотел бы переписать их в следующем формате

http://www.example.com/my-sub-directory/this-is-the-page-title-excellent-title

Как видите, количество черточек в исходном URL-адресе является переменным.Это возможно?Могу ли я сделать это для всех URL или просто глобально?

Не могли бы вы также привести простой пример того, как переписать этот

http://www.example.com/my_sub_directory/ 

в этот

* 1013?*

Большое спасибо

1 Ответ

0 голосов
/ 06 марта 2012

Возможно ли это?Могу ли я сделать это для всех URL или просто глобально?

Да, но не с правилом .htaccess.Вы можете использовать RewriteMap prg: , если у вас есть root-доступ к конфигурации системы или vhost.Однако некоторые могут думать так:

RewriteEngine On
RewriteBase   /

RewriteRule ^(.*?--.*)$        remapper.php?url=$1  [L]

Затем с помощью сценария переназначения изменить параметр url и ввести header("Location: ..."), чтобы выполнить перенаправление 302 на «нормализованный» URI.

Re: my_sub_directory/ переписать, это тривиально для фиксированной строки каталога, но общий случай должен быть обработан, как указано выше:

RewriteRule my_sub_directory/  my-sub-directory/    [L]
...