// выводится
http://site.ru/catalog/audi/
// выводится
http://site.ru/catalog/
Снизу стоят условия:
CODE (
htmlphp):
скопировать код в буфер обмена
RewriteCond %{REQUEST_URI} ^/catalog$ [OR]
RewriteCond %{REQUEST_URI} ^/catalog/(.*)$
RewriteRule ^(.*[^/])$ http://%{HTTP_HOST}/$1/ [R=301, L]
Вот этот нижний блок из 3-х строк должен в конец автоматом добавлять "/" если мы забыли.
В случае если набрали
http://site.ru/catalog (
без слэша) -> автоматом добавляется окончательный слэш
http://site.ru/catalog/ , и это верно.
Но в случае где присутствует ещё и
mark_id=$1 и мы набираем
http://site.ru/catalog/audi (
тоже без слэша), то урл каверкается так:
http://site.ru/index.php/audi?tc_type=2
В чём же дело???
все просто, get - запросы слешем не закрываются, это относиться и к файлам
слешем обычно директроии могут закрываться при том что не обязательно
например в убунте по умлочанию директроия веб-сервера
лежит по адресу:
/var/www
и к ней можно из консоли обратиться так
cd /var/www
а можно и так
cd /var/www/
а если в этой директории лежит файл file.txt
то мы можешь его прочитать так
cat /var/www/file.txt или зайти в эту директорию
cd /var/www
и прочитать
cat file.txt
но мы не можем к нему обратиться так
cat file.txt/ или cat /var/www/file.txt/
потому что конечный слеш это признак директории