URL переписать для года, месяца и дня - PullRequest
2 голосов
/ 18 мая 2011

Я хочу добиться чего-то вроде этого: http://example.com/year/month/day вместо http://example.com? Year = yyyy & month = mm & day = dd

Я хочу, чтобы оно переписывалось только тогда, когдасовпадения являются только числами, когда первый сегмент (год) представляет собой 4-значный номер, месяц второго сегмента находится в диапазоне от 01 до 12 (месяцы года d), последний сегмент (день) находится в диапазоне от 01 до 31 (дни в месяце)).

Пожалуйста, как мне этого добиться

Ответы [ 2 ]

3 голосов
/ 18 мая 2011

Я думаю, вы должны проверить номер месяца и дня в вашем скрипте.Но вот регулярное выражение.

Обновлено, чтобы соответствовать однозначному дню или месяцу с дополнительной косой чертой.

RewriteRule ^(\d{4})/(0?[1-9]|1[0-2])/(0?[1-9]|[12][0-9]|3[01])/?$ ?y=$1&m=$2&d=$3

Только для года и месяца с дополнительной косой чертой.

RewriteRule ^(\d{4})/(0?[1-9]|1[0-2])/?$ ?y=$1&m=$2
2 голосов
/ 18 мая 2011

лучшее, что я могу придумать, это:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(\d{4})/(0[1-9]|10|11|12)/(0[1-9]|[12][0-9]|3[01])/?$  index.php?y=$1&m=$2&d=$3 [L]
...