Подскажем как, но сначала скажите что исправить:
1. глюк на сайте, вызывающий появление /obzory.htm/page.htm ?
2. редирект /obzory.htm/page.htm в /obzory//page.htm (чтоб эту страницу не редиректило, а оствляло как есть) ?
3. или кривое правило редиректа, применяющееся к тому, к чему не должно применяться ?
Судя по заголовку топика второе или третье.
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(script/galleries.*[^/])/?$ $1/index.php [L]
если запрашиваемый документ папка и если начинается на "script/galleries" и может быть заканчивается слешем, то реврайт на index.php в этой папке
gormarket добавил 28.02.2011 в 14:13
Извиняюсь, не получилось отредактировать: убрал последний символ в galleries, чтоб корректно обрабатывался адрес "script/galleries/" (со слешем в конце)
RewriteCond % {REQUEST_FILENAME} -d RewriteRule ^(script/gallerie.*[^/])/?$ $1/index.php [L]
если запрашиваемый документ папка и если начинается на "script/gallerie" и может быть заканчивается слешем, то реврайт на index.php в этой папке
gormarket добавил 28.02.2011 в 14:15
RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(script/gallerie.*[^/])/?$ $1/index.php [L]
Как я вижу у Вас сейчас нет редиректов в .htaccess, только реврайты.
А как Вы смотрите, если сделать 301 редирект для запросов папки без файла на индексный файл в этой папке ?
Убъете сразу двух зайцев - и проблема исчезнет и дублей страниц не будет (вместо "...folder/", "...folder" и "...folder/index.php" останется только страница с index.php)
То что Вы сделали, это только освободили переменную $ для использования скриптом mootools.
А нужно еще и в коде вашего сайта заменить все обращения к jQuery через "$(..." на "jQuery(..."
В статье, ссылку на которую Вы дали, ведь написано:
// Используем jQuery jQuery("div p").hide(); //Используем $() другой библиотеки $("content").style.display = 'none';
А у Вас на сайте обращение и к той и к другой библиотекам осталось через $
jQuery перестал использовать $, а Вы продолжаете обращаться к нему через эту переменную.
Попробуйте такой вариант:
$text= preg_replace("/([^.]{25,}\.) /", "$1<br />", $text);
перенос вставляется вместо пробела после точки, но при условии что перед точкой есть не менее 25 любых символов (исключая точку).
Число 25 взял "с потолка". Можете использовать свое значение.
Почему-то не помогает "http://"...
в строке
RewriteRule ^(.*)\.php http://www.example.com/$1.html [R=301,L]
php заменяется на html, а потом в следующих строках (на следующем проходе по файлу) html перезаписывается снова на php.
Можно попробовать при преобразованиях назначать переменную, и проверять ее, чтоб не произошло обратного преобразования.
RewriteEngine On RewriteBase / RewriteCond %{ENV:REDIRECT_WasHTML} !^yes$ RewriteRule ^(.*)\.php http://www.example.com/$1.html [R=301,L,E=WasPHP:yes] RewriteCond %{ENV:REDIRECT_WasPHP} !^yes$ RewriteRule ^(.*)\.html $1.php [QSA,L,E=WasHTML:yes]
строку
RewriteRule ^index.html$ index.php [L,NE]
можно выкинуть, этот вариант тоже обрабатывает вторая строка (RewriteRule ^(.*).html $1.php [QSA,L])
эти строки не дают 302 редирект, они отдают содержимое файлов .php если запросить файл .html, но если обратиться по адресу с .php, то они прекрасно отдаются, что вызывает дублирование страниц (.html и с .php).
Чтобы не отдавались страницы с адресами на .php, а редиректило на .html, попробуйте так
Тогда давайте уточним, что Вам нужно
Я это понял так, что у Вас сейчас обращение к сайту идет на страницы
.php, а Вы хотите чтобы при этом посетителей перебрасывало на страницы с .html.
Так ?
Если так, то у Вас сайт сейчас отображает страницы, если обратиться сразу напрямую на .html ?
У Вас реврайт включен, есть в файле .htaccess такие строки?
RewriteEngine On
RewriteBase /
Если не задана база
то без / перед $1.html работать не будет, нужно так
RewriteRule ^(.*)\.php /$1.html [R=301,L]
Вы немного перепутали: сначала идет "что есть" и затем "что нужно"
RewriteRule ^(.*)\.php $1.html [R=301,L]
(и перед точкой в регулярном выражении нужно поставить \ чтоб это была точка, а не "любой символ")