#.htaccess #mod-rewrite #rewrite #conditional-statements
#.htaccess #изменение-перезапись #перезапись URL-адреса #условные операторы
Вопрос:
Я пытаюсь записать правила в файл .htaccess.
Я написал правило следующим образом:
RewriteCond %{QUERY_STRING} ^id=([0-9] )amp;dgid=([0-9] )$
RewriteRule destination_content-id-(.*)-dgid-(.*).htm$ destination_content.html?id=$1amp;dgid=$2 [L]
перезапустил сервер.
Перед ним установлено следующее правило.
RewriteEngine on
# Parse out basename, but remember the fact.
RewriteRule ^(.*).html$ $1 [C,E=WasHTML:yes]
# Rewrite to document.phtml if exists...
RewriteCond %{REQUEST_FILENAME}.phtml -f
RewriteRule ^(.*)$ $1.phtml [S=1]
# ...else reverse the previous basename cutout.
RewriteCond %{ENV:WasHTML} ^yes$
RewriteRule ^(.*)$ $1.html
оно работает нормально.
но мое правило не работает.
Не могли бы вы, пожалуйста, помочь мне в решении проблемы.
Спасибо, Srilu
Комментарии:
1. Что вы пытаетесь сделать со своим правилом перезаписи?
2. Кажется странным, вы запрашиваете, чтобы xxx-<id>-yyy-<gid>-zzz было перезаписано в content.html?id=<id>amp;gid=<gid> только тогда, когда URL-адрес уже содержит строку запроса того же формата? Вы пытались удалить RewriteCond? Похоже, ему здесь не место. Но, возможно, вы могли бы немного подробнее.
Ответ №1:
Не учитывайте RewriteCond (оно не соответствует RewriteRule).
Вам просто понадобится RewriteRule, и я предполагаю, что вы хотите, чтобы это выглядело следующим образом:
RewriteEngine on
RewriteRule destination_content-id-([0-9] )-dgid-([0-9] ).htm$ destination_content.html?id=$1amp;dgid=$2 [L]
Комментарии:
1. Да, но оно не работает. Не могли бы вы, пожалуйста, помочь мне в решении проблемы?
2. Как выглядит ваш URL-адрес? И на что вы хотите его переписать?