У меня есть две разные вещи, которые я хочу выполнить в случае двух разных типов URI, но я не могу остановить второй случай от выполнения, когда первый случай уже принят.htaccess RewriteCond REQUEST_URI обнаружение не работает
Вот пример:
abc.com
abc.com/asdf
abc.com/en/asdf
abc.com/zh-cn/asdf/asdf
все должны быть направлены на этот RewriteRule:
RewriteRule ^(([a-z]{2})(-[a-z]{2})?)(/([a-z0-9-\./]*))?$ /index.php?lng=$1&tpl=$4 [QSA,L,NC]
Часть 2:
abc.com/myadmin/
abc.com/myadmin/asdf
abc.com/myadmin/en/asdf
abc.com/myadmin/zh-cn/asdf/asdf
все должны быть направлены на этот RewriteRule:
RewriteRule ^myadmin/(([a-z]{2})(-[a-z]{2})?)(/([a-z0-9-\./]*))?$ /myadmin/index.php?lng=$1&tpl=$4 [QSA,L,NC]
Пути я пытаюсь достигнуть этого является укладкой условия, как это:
RewriteCond %{REQUEST_URI} !^/myadmin/
RewriteRule ^(([a-z]{2})(-[a-z]{2})?)(/([a-z0-9-\./]*))?$ /index.php?lng=$1&tpl=$4 [QSA,L,NC]
RewriteCond %{REQUEST_URI} ^/myadmin/
RewriteRule ^myadmin/(([a-z]{2})(-[a-z]{2})?)(/([a-z0-9-\./]*))?$ /myadmin/index.php?vlng=$1&tpl=$4 [QSA,L,NC]
Но независимо от того, что я делаю, как правила по-прежнему выполнять. Возможно, я делаю это правильно, а вторичный кадр происходит дальше в шаблонах php, я не уверен. Мне просто нужно знать, хорошо ли то, что я сделал, хорошо.
Это не похоже на мою проблему, даже если я удаляю второй набор условий и жестко кодирую свой URI в/myadmin/dir, он по-прежнему вызывает мой файл /index.php в корневом каталоге сервера. Правильно ли работает RewriteBase/критический в вашем примере? Я никогда раньше не требовал этого. – Vince
Сначала вы должны убедиться, что выше .htaccess находится непосредственно под DOCUMENT_ROOT. Pls сбрасывает ваш полный .htaccess в ваш вопрос и рассказываю мне, для какого URI этот код не работает, чтобы я мог также проверить с моего конца. – anubhava
Полный файл .htaccess имеет длину почти 260 строк и находится в DOCUMENT_ROOT. Если я использую код, который вы предложили выше, пытаясь получить доступ к моей области администрирования, другой RewriteRule также выполняется, и я могу сказать, потому что в другом правиле указывается код, который обновляет файлы cookie, найденные в публичной части моего сайта. Единственный способ остановить обновление файлов cookie - удалить вторую часть кода, который вы разместили выше, что нарушает публичную часть моего сайта. Мне нужен другой способ сделать это, что не позволит выполнять оба условия. – Vince