Здравствуйте! На самописном сайте делаю чпу ссылки через RewriteRule в .htaccess. В конце каждого url слеш (/) удаляю. Все вроде нормально работает. Но когда добавлю в адрес любой get параметр то все работает не правильно. Приведу пример: Ссылка без чпу выгладит так - https://site.ru/search?cat_id=5 Чпу ссылка - https://site.ru/search/rabota Это все работает правильно. Если добавить get параметр к чпу ссылке - https://site.ru/search/rabota/?page=2 - то слеш после слова 'rabota' удаляется - https://site.ru/search/rabota?page=2 - и get параметр (?page=2) не рабочий становится, а get параметр (cat_id=rabota) достается нормально. Как сделать чтобы слеш после 'rabota' не удалялся? строка Код (Text): #RewriteCond %{REQUEST_URI} !^/search/(.*)/?$ работает не корректно. Код из файла htaccess: Код (Text): AddDefaultCharset UTF-8 php_value register_globals 0 Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} ^www\.(.*) [NC] RewriteRule ^(.*)$ https://%1/$1 [R=301,L] RewriteCond %{HTTPS} =off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule \.(php|htm|html|swf|fla|xml|ico|jpg|gif|png|js|css)$ - [L] RewriteRule ^search/([-a-z0-9_]+)?$ ?cat_id=$1 [L] RewriteCond %{HTTP_HOST} (.*) RewriteCond %{REQUEST_URI} /$ [NC] #RewriteCond %{REQUEST_URI} !^/search/(.*)/?$ RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)(/)$ $1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*) /?%{QUERY_STRING}
по-нормальному это ты все запросы направляешь на index.php где парсишь через parse_url() то, что пришло в $_SERVER['REQUEST_URI']
Код (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]
@bo4kov, вам намекают, что никто из здесь присутствующих не будет разбираться в этих хитросплетениях правил (хотя некоторые могут, я например), потому что никто эту муть не использует. --- Добавлено --- ...в полной мере.