[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: mod_rewrite 2 и более параметров гет
Xpund
Всем привет, хочу сделать так:
site.ru/index.php?page=1(может быть любое значение)
заменить на site.ru/1(может быть любое значение)/
Такой вариант у меня прекрасно работает.
Вот так
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
RewriteRule ^([A-Za-z0-9_-]+)[/]?$ index.php?page=$1 [NC,QSA,L]


Но так проблема вот в чём: переменных гет может быть несколько и 2 и 3 и 4, думаю не больше.
2 параметра я тоже сделал:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
RewriteRule ^([A-Za-z0-9_-]+)[/]?$ index.php?page=$1 [NC,QSA,L]
RewriteRule ^([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)[/]?$ index.php?page=$1&go=$2 [NC,QSA,L]

Но этот вариант в логах выводит ошибку
File does not exist: /var/www/xpund/data/www/site.ru/lk, referer: http://site.ru/lk/edfdv

Подскажите как мне правильно сделать, хотя бы для 3ёх ГЕТ параметров. И что бы не было ошибок, иначе сервер только из-за них загнётся)

_____________
минус, конечно, иногда полезен, но плюс мне нравиться больше :)
Женский журнал - Жена сказала раскрутить сайт любой ценой (Sorry)
Игорь_Vasinsky
ну зачем тебе париться с каждом "видом" url?

есть же универсальное решение.

.htaccess

AddDefaultCharset UTF-8 

Options -Indexes

php_flag magic_quotes_gpc Off
php_flag magic_quotes_runtime Off
php_flag register_globals Off

RewriteEngine on

RewriteRule ^admin/(.*)$ admin/index.php?route=$1 [L,QSA]
//RewriteCond %{REQUEST_URI} !^/admin
RewriteCond %{REQUEST_URI} !^/favicon.ico
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]




Url отправляй через функцию, ROOT === true - ЧПУ линк, если нет - то обычный

   function getLink($link){
if(REWRITE == 'on'){
$url = explode('?', $link);
$paths = explode('&', $url[1]);
$seo = 'http://'.HOST;

foreach($paths as $path){
$t = explode('=', $path);
$seo .= '/'.$t[1];
}

return $seo;
}
else
return
$link;
}


Пример

<a href="<?=getLink('?index.php?route=home&page=1')?>">link</a>


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.