.htaccess как исключить каталог из rewrite [duplicate]

Нашел простой способ, который работает со всеми браузерами (Chrome 49, Edge 25, Firefox 44, IE11, Safari 5 [Win], Safari 8 (MacOS)):

// Clean svg content (if you want to update the svg's objects)
// Note : .html('') doesn't works for svg in some browsers
$('#svgObject').empty();
// add some objects
$('#svgObject').append('<polygon class="svgStyle" points="10,10 50,10 50,50 10,50 10,10" />');
$('#svgObject').append('<circle class="svgStyle" cx="100" cy="30" r="25"/>');

// Magic happens here: refresh DOM (you must refresh svg's parent for Edge/IE and Safari)
$('#svgContainer').html($('#svgContainer').html());
.svgStyle
{
  fill:cornflowerblue;
  fill-opacity:0.2;
  stroke-width:2;
  stroke-dasharray:5,5;
  stroke:black;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div id="svgContainer">
  <svg id="svgObject" height="100" width="200"></svg>
</div>

<span>It works if two shapes (one square and one circle) are displayed above.</span>

122
задан Tunaki 28 August 2015 в 13:19
поделиться

6 ответов

246
ответ дан Gumbo 15 August 2018 в 20:46
поделиться
RewriteEngine On

RewriteRule ^(wordpress)($|/) - [L]
4
ответ дан Alexander Tobias Bockstaller 15 August 2018 в 20:46
поделиться

Мы использовали следующее правило mod_rewrite:

RewriteEngine on RewriteCond% {REQUEST_URI}! ^ / test / RewriteCond% {REQUEST_URI}! ^ / my-folder / RewriteRule (. *) http://www.newdomain.com/ $ 1 [R = 301, L]

Это перенаправляет (постоянно с 301 перенаправлением) весь трафик на сайт, чтобы http://www.newdomain.com , кроме запросов к ресурсам в каталогах / test и / my-folder. Мы передаем пользователю точный ресурс, который они запрашивали, используя группу захвата (. *), А затем включающую $ 1 в новый URL. Запомните пробелы.

4
ответ дан Fernando César 15 August 2018 в 20:46
поделиться

добавить условие для проверки каталога администратора, например:

RewriteCond %{REQUEST_URI} !^/?(admin|user)/
RewriteRule ^([^/] )/([^/] )\.html$ index.php?lang=$1&mod=$2 [L]

RewriteCond %{REQUEST_URI} !^/?(admin|user)/
RewriteRule ^([^/] )/$ index.php?lang=$1&mod=home [L]
18
ответ дан Rob 15 August 2018 в 20:46
поделиться
  • 1
    Привет, Роб, я поместил эту строку сразу после & quot; RewriteBase / & quot ;, и теперь я получаю & quot; 500 Ошибка - Ошибка внутреннего сервера & quot; – Kelvin 4 December 2009 в 18:42
  • 2
    @Kelvin Я отредактировал свой ответ, добавьте условие перед каждым правилом, к которому вы хотите применить. – Rob 4 December 2009 в 18:48

Если вы хотите удалить конкретный каталог из правила (это означает, что вы хотите удалить каталог foo), вы можете использовать:

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/foo/$
RewriteRule !index\.php$ /index.php [L]

. Переписанное выше правило будет переписывать все запросы в / index .php, исключая запросы для / foo /.

Чтобы исключить все существующие директивы, вам нужно будет использовать следующее условие над вашим правилом:

RewriteCond %{REQUEST_FILENAME} !-d

следующее правило

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !index\.php$ /index.php [L]

перезаписывает все (кроме directries) в /index.php.

3
ответ дан starkeen 15 August 2018 в 20:46
поделиться

Вы также можете поместить файл .htaccess, содержащий

RewriteEngine Off

. В папках, которые вы хотите исключить из перезаписывания (по правилам в файле .htaccess, который выше в дереве ). Простой, но эффективный.

90
ответ дан user 15 August 2018 в 20:46
поделиться
  • 1
    +1 ~ .htaccess работает иерархически, поэтому локальные папки переопределяют своих родителей, как обычный каскад в CSS или MVC. – Atari 30 October 2013 в 20:12
  • 2
    есть только одна вещь, которую вы должны иметь в виду: активация файлов .htaccess (установка AllowOverride на что-либо еще, чем None в конфигурации apache) заставляет apache искать .htaccess для каждого запроса. поэтому, если у вас есть высоко посещаемый веб-сайт / веб-сервер, доступ к файловой системе / жесткому диску может иметь эффект производительности ... – bohrsty 25 August 2016 в 10:42
  • 3
    Спасибо брат. – Siraj 13 May 2018 в 16:55
Другие вопросы по тегам:

Похожие вопросы: