gpt4 book ai didi

PHP htaccess 将查询字符串从大写重定向到小写

转载 作者:可可西里 更新时间:2023-10-31 23:05:04 26 4
gpt4 key购买 nike

我有这个小的 php 脚本和 htaccess 中的几行来重定向带有从大写到小写的查询字符串的 url。

但是,仅当 url 文件或 url 的目录部分中存在大写字符时,它才会将查询字符串中的大写字符重定向为小写字符。

大写目录示例:

domain.com/JOBS/?position=Java+Developer

将被重定向到

domain.com/jobs/?position=java+developer

目录或文件名中没有大写字母但仅在查询字符串中的示例:

domain.com/jobs/?position=Java+Developer

将被重定向到

domain.com/jobs/?position=Java+Developer

第一个示例成功地将目录和查询字符串重定向为全部小写。

第二个例子没有将查询字符串重定向为小写,它保持不变。

无论目录或文件名是否大写,我都不知道要在代码中更改什么以使查询字符串重定向到小写。

代码如下:

htaccess

RewriteEngine On

RewriteBase /

# force url to lowercase if upper case is found
RewriteCond %{REQUEST_URI} [A-Z]
RewriteRule (.*) rewrite-strtolower.php?rewrite-strtolower-url=$1 [QSA,L]

PHP 脚本

<?php
if(isset($_GET['rewrite-strtolower-url'])) {
$url = $_GET['rewrite-strtolower-url'];
unset($_GET['rewrite-strtolower-url']);
$params = http_build_query($_GET);
if(strlen($params)) {
$params = '?' . strtolower($params);
}
header('Location: http://' . $_SERVER['HTTP_HOST'] . '/' . strtolower($url) . $params, true, 301);
exit;
}
header("HTTP/1.0 404 Not Found");
die('Unable to convert the URL to lowercase. You must supply a URL to work upon.');
?>

最佳答案

代替:

$params = http_build_query($_GET);

像这样使用它:

$params = strtolower ( http_build_query($_GET) );

你的 .htaccess 应该是:

RewriteEngine On
RewriteBase /

# force url to lowercase if upper case is found
RewriteCond %{REQUEST_URI} [A-Z] [OR]
RewriteCond %{QUERY_STRING} [A-Z]
RewriteRule (.*) rewrite-strtolower.php?rewrite-strtolower-url=$1 [QSA,L,NE]

因为您应该为这两种情况调用 PHP 处理程序。

关于PHP htaccess 将查询字符串从大写重定向到小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26032665/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com