Правило перезаписи не влияет на сайт

#.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-адрес? И на что вы хотите его переписать?