add_action('wp_head', 'custom_url_case_insensitive_redirect');
function custom_url_case_insensitive_redirect() {
global $wp;
$requested_url = home_url($wp->request);
$file_name = basename($requested_url);
// Scan all files and folders recursively
$files = getAllFiles(ABSPATH);
// var_dump($files);
$count = 0;
foreach ($files as $file_path) {
//if($count<10){
if (!(strpos($url, "wp-content") !== false || strpos($url, "wp-admin") !== false || strpos($url, "wp-includes") !== false)) {
// Normalize the file path and filename to lowercase for comparison
$lowercaseFile = strtolower($file_path);
// echo $lowercaseFile. '<br>';
$replace_url = str_replace("/home/stgdom/public_html//"," https://stgdom.org/",$lowercaseFile);
$lowercaseRequest = strtolower($requested_url);
$decode_request = trim(utf8_decode(urldecode($lowercaseRequest)));
$decode_replace = trim(utf8_decode(urldecode($replace_url)));
if(trim($lowercaseRequest) == trim($replace_url) || $decode_request == $decode_replace || strcasecmp($lowercaseRequest, $replace_url) == 0 || strcasecmp($decode_request, $decode_replace) == 0) {
$file_path_new = str_replace("/home/stgdom/public_html//"," https://stgdom.org/",$file_path);
//echo utf8_decode(urldecode($lowercaseRequest)).' File:- '.$replace_url.' New: '.$file_path_new.'<br>';
wp_redirect(trim($file_path_new), 301);
exit();
}
$count++;
}
//exit();
}
}
function getAllFiles($dir) {
$files = array();
$all = scandir($dir);
foreach ($all as $file) {
if ($file != '.' && $file != '..') {
$path = $dir . DIRECTORY_SEPARATOR . $file;
if (is_dir($path)) {
$files = array_merge($files, getAllFiles($path));
} else {
$files[] = $path;
}
}
}
return $files;
}
admin Edited question April 25, 2024