.htaccess мод-переписать вопрос

Привет, у меня довольно много проблем с режимом перезаписи, вот что я использую:

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)$ /creatii.php?creatie_thumb=$2&user=$1 [L]
RewriteRule ^([^/]*)/$ /creatiiuser.php?user=$1

я бы хотел эту ссылку:

http://creatii.artcrew.ro/creatii.php?creatie_thumb=creatie19&user=dee-dee

смотреть:

like http://creatii.artcrew.ro/dee-dee/creatie19

Хорошо, работает, проблем с этим нет, но я хочу сделать правило для другой ссылки

http://creatii.artcrew.ro/categorii.php?numecat=poetry&numesubcat=satire

чтобы выглядеть

http://creatii.artcrew.ro/poetry/satire

Как я могу это сделать? какие правила я должен использовать?

в настоящее время, если я получаю доступ к http://creatii.artcrew.ro/poetry/satire, он получает доступ к ссылка: http://creatii.artcrew.ro/creatii.php?creatie_thumb=satire&user=poetry

как заставить обе ссылки (первую и вторую) работать?

еще одна вещь, я хочу эту ссылку: http://creatii.artcrew.ro/creatiiuser.php?user=Dan, чтобы он выглядел как http://creatii.artcrew.ro/Dan или, если это не работает, http://creatii.artcrew.ro/user/Dan как я могу это сделать?

Может кто-нибудь помочь мне? заранее спасибо


person DanTdr    schedule 20.01.2010    source источник


Ответы (2)


Учитывая URL-адрес http://creatii.artcrew.ro/X/Y, как mod_rewrite должен знать, являются ли X и Y значениями creatie_thumb и user или значениями numecat и numesubcat?

Вам нужно добавить что-то к URL-адресу, чтобы различать эти случаи.

Например:

  • http://creatii.artcrew.ro/user/dee-dee
  • http://creatii.artcrew.ro/user/dee-dee/creatie19
  • http://creatii.artcrew.ro/cat/poetry/satire
    RewriteEngine On
    RewriteRule ^user/([^/]*)/([^/]*)$ /creatii.php?creatie_thumb=$2&user=$1 [L]
    RewriteRule ^user/([^/]*)/$ /creatiiuser.php?user=$1 [L]
    RewriteRule ^cat/([^/]*)/([^/]*)$ /creatii.php?numecat=$1&numesubcat=$2 [L]
person Jeremy Stein    schedule 20.01.2010
comment
да, это правильно, но я могу сделать это только для одной категории? только один без отображения? а остальные с маппингом? - person DanTdr; 21.01.2010
comment
Да, у вас может быть один тип сопоставления, не требующий специального токена в URL-адресе. Вам нужно убедиться, что это был первый RewriteRule, и он сломается, если будет возможное значение, которое соответствует используемым вами токенам (например, имя пользователя cat). - person Jeremy Stein; 21.01.2010

Может быть, вы слишком универсальны в своих правилах, и у вас возникают конфликты.

Попробуйте сопоставить эти URL-адреса

http://creatii.artcrew.ro/creatii/dee-dee/creatie1 http://creatii.artcrew.ro/categorii/poetry/satire

Начиная с этого образца, вы можете легко сопоставить свои URL-адреса без конфликтов с правилами.

RewriteEngine On
RewriteRule ^creaati/([^/]*)/([^/]*)$ /creatii.php?creatie_thumb=$2&user=$1 [L]
RewriteRule ^categorii/([^/]*)/([^/]*)$ /categorii.php?numecat=$1&numesubcat=$2 [L]

Сделай пару попыток :D

person napolux    schedule 20.01.2010
comment
да, это сработает, но я создал поддомены специально для некоторых творений, если я использую: этот субдомен не имел бы смысла, нет ли другого способа, по крайней мере, показать первый URL-адрес вот так: creatii.artcrew.ro/dee-dee/creatie19 ? а остальное с маппингом - person DanTdr; 20.01.2010