Добавить - вместо пробелов в переписывании URL - PullRequest
0 голосов
/ 16 февраля 2012

У меня есть этот URL:

http://www.site.com/en/about.php?id=112&name=andrew marshall dickens

и я хотел бы переписать это так:

http://www.site.com/112/andrew-marshall-dickens.html

пока:

RewriteRule ^([^/]*)/([^/]*)\.html$ /en/about.php?id=$1&name=$2 [L]

У меня проблемы с символом "-". Есть предложения? Спасибо!

Ответы [ 2 ]

1 голос
/ 16 февраля 2012

Что ж, вы пытаетесь использовать Regex для удаления символов из середины строки, в которой может быть любое количество символов в середине RewriteRule.С одной стороны, это не совсем возможно, с другой стороны, вы передаете идентификатор, поэтому я предполагаю, что вы можете получить имя, используя идентификатор в своем PHP-скрипте, так что на самом деле нет необходимости анализировать имя из URLпеременные, и как третий вариант, почему бы просто не str_replace символы - в PHP и ucwords () строка перед выводом, если вы хотите использовать переменную name?

0 голосов
/ 16 февраля 2012

Я считаю, что вам не нужно передавать имя параметра, потому что id может получить это.

В любом случае:

RewriteRule ^([0-9]+)/([a-z-]+)\.html$ /en/about.php?id=$1&name=$2 [L]

Но, читая комментарий, я только что понял: какова вашапроблема?Ваше регулярное выражение уже должно работать

...