Автодобавление слеша к урлу

L
На сайте с 17.05.2013
Offline
88
462

site.ru/search

site.ru/search/

Ведут на одну и туже страницу. Как в первом случае автоматически к урлу добавлять слеш?

---------- Добавлено 19.11.2014 в 00:52 ----------

Подскажите также правило которое ловит такие урлы, тоесть

например такое правило

RewriteRule ^(.*)/$ /engine.php?$1

в $_SERVER["REQUEST_URI"] попадут все урлы, которые закрываются слешем

в такое

RewriteRule ^(.*)\.html$ /engine.php?$1

которые заканчиваются .html

а как быть, если урл ничем не закрывается? Пробовал

RewriteRule ^(.*)$ /engine.php?$1 - выдает 500 ошибку

siv1987
На сайте с 02.04.2009
Offline
427
#1

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ /engine.php?$1 [L]

/engine.php?$1 - а нахрена REQUEST_URI целиком добавлять как параметры запросы? Парсите REQUEST_URI сделав просто реврайт на нужный файл /engine.php [L]

M
На сайте с 04.12.2013
Offline
223
#2

Может, лучше убирать слеш(и), а не добавлять.

luckydan:

а как быть, если урл ничем не закрывается? Пробовал
RewriteRule ^(.*)$ /engine.php?$1 - выдает 500 ошибку

Добавьте условие «если не файл», как в наших движках:


RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.* /index.php
siv1987:
/engine.php?$1 - а нахрена REQUEST_URI целиком добавлять как параметры запросы? Парсите REQUEST_URI сделав просто реврайт на нужный файл /engine.php [L]

Поддерживаю. Может, имелось в виду ?p=$1, чтобы запихнуть путь в отдельный параметр. Хотя я тоже за программный парсинг.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts

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