помогите с .htaccess RewriteRule - PullRequest
0 голосов
/ 29 мая 2010

Что такое правило перезаписи для следующего URL

mysite.com/001234-some-keywords.html

Я хочу получить 6-значный ссылочный номер, например, ([0-9] {6})
мой индексированный файл

templates/default/index.php?ref=001234

Однажды я делаю регулярное выражение для крашкурса .. Обещаю.

1 Ответ

0 голосов
/ 29 мая 2010

Возможно

RewriteRule ^([0-9]{6}).*$ templates/default/index.php?ref=$1
  • ([0-9]{6}) было уже правильно, он захватывает шесть цифр
  • .* соответствует любому символу впоследствии.
  • $1 заменяется содержимым первой группы захвата ()

Если вы хотите ограничить соответствие URL-адреса только в том случае, если в нем ровно шесть цифр, он должен выглядеть следующим образом (обратите внимание на тире -):

RewriteRule ^([0-9]{6})-.*$ templates/default/index.php?ref=$1

или соответствует URL, только если он заканчивается на .html:

RewriteRule ^([0-9]{6})-.*?\.html$ templates/default/index.php?ref=$1

Предлагаю прочитать mod_rewrite документацию .
Также регулярные выражения.info отлично подходит для изучения регулярных выражений.

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