LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.05.2012, 18:18:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Как в .htacsess убрать со всех урлов завершающий слэш  (Прочитано 479 раз)
0 Пользователей и 1 Гость смотрят эту тему.
si@m
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 188


« : 20.01.2012, 10:01:33 »

Есть необходимость убрать со всех урлов завершающий слэш (за исключением конечно главной страницы Grin), у меня на сайте включен родной SEF а в .htacsess уже прописан редирект с www на без www вот таким образом:
Код:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
полностью .htacsess выглядит так:
Код:
#php_flag register_globals 0

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]


php_value disable_functions \"popen,exec,system,passthru,proc_open,shell_exec\"
я добавляю строчку чтобы избавится от слэша:
RewriteRule ^(.*)\/$ /$1 [R=301,L]
в итоге получается так
Код:
#php_flag register_globals 0

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteRule ^(.*)\/$ /$1 [R=301,L]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteRule ^(.*)$ index.php [F,L]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]


php_value disable_functions \"popen,exec,system,passthru,proc_open,shell_exec\"
На сайте все вроде работает как надо от "/" избавился но после этого не могу войти в админку на странице site.ru/administrator циклическая переадресация. Подскажите пожалуйста кто знает в чем ошибка.
« Последнее редактирование: 20.01.2012, 10:21:00 от userxp » Записан
oriol
Живу я здесь
******

Репутация: +85/-3
Offline Offline

Сообщений: 1300


« Ответ #1 : 20.01.2012, 10:16:01 »

Добавить завершающий слэш
Код:
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

Удалить завершающий слэш
Код:
RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
Записан
userxp
Администратор
*******

Репутация: +400/-6
Offline Offline

Пол: Мужской
Сообщений: 3227


Злой и ужасный бармалей


« Ответ #2 : 20.01.2012, 10:21:44 »

и когда вы уже научитесь правильно название темы формулировать
 Sad
Записан
si@m
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 188


« Ответ #3 : 20.01.2012, 10:39:10 »

oriol попробовал то что вы посоветовали суть та же в админку не пускает.
userxp исправлюсь Smiley
Записан
oriol
Живу я здесь
******

Репутация: +85/-3
Offline Offline

Сообщений: 1300


« Ответ #4 : 20.01.2012, 12:01:55 »

Я вставил твой первый htaccess
Показать текстовый блок
к себе и проверил, все работает отлично все страницы выдаются без слеша а при добавлении слеша отдают 404 страницу.
Так что вы мозги не выносите
Проверь в настройках своего сайта mod_Rewrite включен (даже не знаю в чем у тебя проблема)

а страницы с которыми так борятся    site.ru/index.php     site.ru/index.php/  дублями не являются поисковики их склеивают
можешь зайти и проверить


########## Begin - File exection order, by Komra.de
DirectoryIndex index.php index.html
########## End - File exection order

########## Begin - No directory listings
# !----- это исправь
IndexIgnore *
Options +FollowSymLinks All -Indexes   
########## End - No directory listings
« Последнее редактирование: 20.01.2012, 13:38:01 от oriol » Записан
si@m
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 188


« Ответ #5 : 20.01.2012, 14:12:52 »

Мои настройки:
Включить SEO Да
Использовать mod_rewrite Да 
Добавить суффикс к URL Нет
Извините но мозг ни кому и не собирался выносить, зачем мне это?
Записан
oriol
Живу я здесь
******

Репутация: +85/-3
Offline Offline

Сообщений: 1300


« Ответ #6 : 20.01.2012, 14:57:07 »

попробуй добавить что выше написано  
у меня тоже родной SEF и работает все нормально
единственное у меня  Добавить суффикс к URL да
« Последнее редактирование: 20.01.2012, 15:02:25 от oriol » Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet