URL переписать по-другому - PullRequest
1 голос
/ 15 мая 2011

Я привык переписывать ссылки следующим образом:

http://example.com/category/banking-jobs :: RewriteRule ^ category / ([^ /] +) / $ category.php? Id = $ 1 [L]

где категория фиксирована, т.е. часть URL фиксирована.

Я понял, что не хорош в перезаписи вообще, когда я столкнулся с перезаписью без фиксированной частинапример.

http://example.com/year/month/post-name

это означает, что год, месяц, имя и фамилия могут быть любыми.

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

РЕДАКТИРОВАТЬ:

У меня есть другой сценарий, у меня есть другая структура URL (http://example.com/year/month/day) похожа на: http://example.com/year/month/post-name

, но они должны обрабатываться отдельно. Как мне достичь этого

Ответы [ 2 ]

0 голосов
/ 15 мая 2011

Вам нужно что-то вроде этого.

RewriteRule ^(.+)/(.+)/(.+)/(.+)$ category.php?y=$1&m=$2&d=$3&post=$4 [L]
0 голосов
/ 15 мая 2011

Используйте заполнители ([^/]+), как в исходном примере.

      RewriteRule ^category/([^/]+)/$ category.php?id=$1 [L]
                      ^        ^
corresponds to        |        |
                      |        |
http://example.com/category/banking-jobs

Так что для URL вроде:

 http://example.com/year/month/day/post-name

Вы бы использовали:

 RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/$ category.php?$1,$2,$3

И все, что находится в ( круглых скобках ), добавит еще один перечислимый $4, который вы затем используете в переписанном имени файла как &param=$2 заполнитель.

...