Усовершенствованное решение этого варианта: http://krylov.org.ua/?p=1130
.htaccess
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$
RewriteRule . %1/%2 [R=301,L]
Работает для http://site.com/dir1///dir2
но проблема остается в адресах типа http://site.com///uri (несколько слешей после домена)
Решение на php:
if(stristr($_SERVER['REQUEST_URI'],'//')){
$uri=preg_replace('#/{2,}#','/',$_SERVER['REQUEST_URI']);
header('Location: '.$uri,false,301);
exit;
}
В примере необходимо генерировать в URL фильтрацию по цене только в том случае, если пользователь сам изменил ползунок выбора цены.
Т.е. нужно не передавать определенные параметры в _GET (по ситуации).
Часть формы (добавляем hidden поля):
<form method="get" action="" id="filter_form">
от <input type="text" name="price_from" id="price_from" value="100"/>
до <input type="text" name="price_to" id="price_to" value="1000"/>
<input type="hidden" id="price_min" value="100"/>
<input type="hidden" id="price_max" value="1000"/>
</form>
Яваскриптом дисаблим inputы, если их значения не меняли.
$(function(){
$("#filter_form").submit(function(){
if($("#price_from").val()==$("#price_min").val()){
$("#price_from").attr("disabled","disabled");
}
if($("#price_to").val()==$("#price_max").val()){
$("#price_to").attr("disabled","disabled");
}
});
});
function htmlizeEmails($text){
preg_match_all('/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6})/',$text,$potentialEmails,PREG_SET_ORDER);
$potentialEmailsCount=count($potentialEmails);
for($i=0;$i<$potentialEmailsCount;$i++){
if(filter_var($potentialEmails[$i][0],FILTER_VALIDATE_EMAIL)){
$text=str_replace($potentialEmails[$i][0],'<a href="mailto:'.$potentialEmails[$i][0].'">'.$potentialEmails[$i][0].'</a>',$text);
}
}
}
Использование:
http://stackoverflow.com/questions/9763606/detecting-emails-in-a-text
Необходимо настроить 301-й редирект со всех страниц сайта с символами верхнего регистра в URL на аналогичные страницы с нижним регистром.
При этом редирект не должен затрагивать GET параметры после знака «?» в URL.
$url_get=urldecode($_SERVER['REQUEST_URI']);
if(strpos($url_get,'?')!==false){
$a=explode("?",$url_get);
$a[0]=mb_strtolower($a[0]);
$newurl=$a[0]."?".$a[1];
}
else{
$newurl=mb_strtolower($url_get);
}
if(urldecode($_SERVER['REQUEST_URI'])!=$newurl){
header('Location: '.$newurl,true,301);
}
Например разделить строку по латинской X и русской Х.
$exp=preg_split("/(x|х)/",$str);