PHP中的大写和小写URL

时间:2009-09-25 11:38:13

标签: url case-sensitive

我在根示例中创建了文件夹:http://www.zipholidays.co.uk/Cubahttp://www.zipholidays.co.uk/Florida

当我键入http://www.zipholidays.co.uk/cuba(小写的多维数据集)时,它会显示找不到的页面。

我正在使用Apache服务器。人们正在链接到小写,大写,混合大小写的页面 - 无论如何。如何使页面不区分大小写?

5 个答案:

答案 0 :(得分:3)

也许是mod_spelling? mod_spelling

答案 1 :(得分:2)

如果您的网页不区分大小写,则会出现一些重复的内容问题,因为您将拥有两个内容相同的网页。

一个好的解决方案是在每个404页面上进行一些301重定向,当等效的小写字母存在时。

例如,在您的404默认页面中,您输入:

<?php
    $lower = strtolower($_SERVER['REQUEST_URL']);
    if (file_exists(PATH_TO_YOUR_APPLICATION . $lower) {
        header('location: ' . $lower, true, 301);
        die();
    }
?>

因此,当您加载404页面时,如果存在相同的小写字母,则重定向到那里。否则,您可以显示自己的缺页内容。

答案 2 :(得分:2)

我不会让我的网址不区分大小写。相反,我会遵循严格的指南来创建这样的URL。例如,我只使用小写URL路径,并将带有大写字母的URL路径的请求重定向到小写变体。

您甚至可以使用mod_rewrite(需要rewrite map到内部tolower功能)执行此操作:

RewriteCond %{tolower:%{REQUEST_URI}} .+
RewriteRule ^[^A-Z]*[A-Z] %0 [L,R=301]

答案 3 :(得分:0)

也许您可以将Linux替换为Windows作为服务器操作系统。

Linux上的Apache在文件路径中区分大小写,因此在URI中也是如此。 Windows文件系统不区分大小写,因此无关紧要。

答案 4 :(得分:-1)

你不需要这样做。因为Google会认为您的网站上有重复的网页,并会禁止您。这是SEO科学的规则。