Урлы со слеш и без

Z
На сайте с 22.11.2008
Offline
66
1028

Добрый день!

Решил сменить двиг. На старом двиге ЧПУ были вида:

http://site.ru/категория/страница.php

http://site.ru/категория

На новом двиге получились

http://site.ru/категория/страница.php

http://site.ru/категория/

То есть в категории прибавляется слеш, а это уже совсем другая страница!

Подскажите как избавиться от слеша

Что нужно прописать? добавить, изменить в .htaccess

Trean
На сайте с 28.10.2009
Offline
78
#1

Тоже была такая проблема.

Прописал 301 редирект, страницы поклеились.

Сделай также как с www.site.ru на site.ru (или наоборот).

Беру заказы на продвижение, также предлагаю качественные консультации и аудиты сайтов (обращаться в ЛС).
Z
На сайте с 22.11.2008
Offline
66
#2

Так а что нужно прописать в хтасес что бы избавиться от слеша?

E
На сайте с 05.05.2006
Offline
89
#3

Для начала попробуйте так

RewriteEngine on

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]
пансионат для пожилых людей (https://mirnika.ru)
intint
На сайте с 26.12.2009
Offline
5
#4
Enabled:
Для начала попробуйте так
RewriteEngine on

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]

Enabled, как спец по .htaccess, подскажи, плиз, решение такой задачи.

Есть два домена типа proekt.com и proekt.ru

Proekt.com привинчен к proekt.ru как алиас, то есть на шаред-хостинге для них предназначена одна папка. Ну, так многие делают, чтобы у них по разным доменам отдавался одинаковый контент (например, можно такое встретить, когда у фирмы название из двух слов и она берет, на всякий случай, домен с дефисом и без дефиса).

Потом решили все-таки сделать для proekt.com небольшую англоязычную версию (небольшой отдельный сайт). Для этого в этой папке выделили отдельную подпапку /en/ - сюда и сложили страницы на английском языке. (надо сказать, иногда такой вариант удобнее, чем выделять для proekt.com отдельную системную папку, так как когда он работает как алиас, то из материнской папки можно брать картинки через относительные, а не абсолютные пути, но не суть).

Итак имеем что-то типа такого:

proekt.ru - содержимое в папке находится тут - /hoster/proekt/

proekt.com - содержимое в папке находится тут - /hoster/proekt/en/

В папке для proekt.com [/hoster/proekt/en/] все файлы раскиданы в отдельные папки, типа:

/about/index.html

/services/index.html

/contact/index.html

и т.п.

Сейчас уже не помню, почему так сделано, но возможно, что иначе даже с использованием .htaccess было сделать нельзя, то есть, чтобы просто в /hoster/proekt/en/

положить файлы типа:

/about.html

/services.html

/contact.html

Опять же не суть важно.

Дальше возник вопрос с прописыванием .htaccess, чтобы юзерам все правильно отдавалось.

Как сделано сейчас:

В папке/hoster/proekt/ лежит такой .htaccess

====================

RewriteEngine on

RewriteRule ^en/ - [L]

RewriteCond %{HTTP_HOST} (www\.)?proekt\.com [NC]

RewriteRule (.*) en/$1 [L]

====================

В папке/hoster/proekt/en/ лежит такой .htaccess, там ничего особенного не прописано

====================

RewriteEngine on

ErrorDocument 404 http://www.proekt.com

====================

Для запросов со слэшем вида - http://www.proekt.com/about/ - эта конструкция отлично работает.

А вот если ввести без слэша http://www.proekt.com/about , то тоже работает, но перекидывает на адрес - http://www.proekt.com/en/about/

То есть становится видно это самое /en/

Нельзя сказать, чтобы это создавало какие-то проблемы, просто хотелось бы сделать, чтобы /en/ не появлялось и при запросах без слэша. Попробовал кучу разных вариантов, но так и не нашел решения (делал что-то одно, начинало глючить другое).

Титульная страница for free для владельцев СДЛ - /ru/forum/462230 (/ru/forum/462230) Isle of Man
Z
На сайте с 22.11.2008
Offline
66
#5
Enabled:
Для начала попробуйте так
RewriteEngine on

RewriteCond %{REQUEST_URI} ^(.*)//(.*)$
RewriteRule . %1/%2 [R=301,L]

Попробовал не вышло!

Вот мой хтасес

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]

Подскажите как его подправить

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий