Делаю, чтобы без слэша на конце работали (site.ru/car/vaz): Код (Text): RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L] но если в alias прописать слеш, то будет редирект на главную site.ru/car/vaz/ или site.ru/car/va/z я вот и хочу понять, это из-за htaccess или это index.php так отрабатывает (ну или что-то внутри системы) --- Добавлено --- задача чтобы обе ссылки site.ru/car/vaz site.ru/car/vaz/ выводили одну и ту же статью, то есть работали ps это для сохранения старых ссылок
@justc, например: htaccess: add/remove trailing slash from URL Спойлер RewriteCond%{REQUEST_FILENAME}!-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule^(.*[^/])$ /$1/[L,R]# <- for test, for prod use [L,R=301]
404, я думаю всё-таки движок плюсом что-то делает, чтобы не было дублей... может тогда сделать проще, по умолчанию БЕЗ слэша на конце, а если запрос идет СО слэшем, то делать 301 редирект на БЕЗ слеша тогда, вроде как, и ссылки сохранятся как физически, так и в поисковиках (правда будет переиндексация) вот пытаюсь так Код (Text): RewriteBase /edsa-test RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} ^(.+)/$ RewriteRule ^(.+)/$ /$1 [R=301,L] RewriteRule .* index.php [L] но редиректит не учитывая RewriteBase
вроде получилось, посмотрите пожалуйста, всё ли так и нормально или можно как-то улучшить, или сократить? Код (Text): <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /edsa-test RewriteCond %{HTTP_HOST} (.*) RewriteCond %{REQUEST_URI} /$ [NC] RewriteRule ^(.*)(/)$ $1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php [L] </IfModule> когда вбиваю url со слэшем на конце идет редирект на БЕЗ слэша
Код (Text): AddDefaultCharset UTF-8 DirectoryIndex index.php RewriteEngine On # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] # Handle Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L]