PHP MySQL网站不使用大写

时间:2016-08-06 05:34:20

标签: php mysql

我用PHP和MySQL制作了一个网站。如果文件夹名称是' blog'在公共目录中使用' index.php'在其中,然后链接' website.com/blog /'工作得很好。现在的问题是,如果我删除最后一个斜杠(/),或者用大写字母写任何字母(如Blog,bloG,BLog等),那么它将把观众带到其他地方。有解决方案吗它看起来很简单,但却无法做到。可能与PHP字符串函数有关。

3 个答案:

答案 0 :(得分:0)

在linux中[[A]和[a]两者都不同,所以当你指向/博客这个你创建的文件夹时,但当你指向/ Blog这个文件夹不存在时。

您可以使用apache或nginx执行这些操作,但子URL不是父文件夹。

答案 1 :(得分:0)

如果你正在使用Apache,这是一个简单的3步解决方案:

  1. 仅在文件夹和文件名中使用小写
  2. 将小写转换(RewriteMap)添加到服务器配置
  3. 使用.htaccess重写从浏览器到小写的所有网址
  4. 第一步很简单;只需将Blog重命名为blog等...

    第二步是在您的网站Virtualhost部分的httpd-vhosts.conf部分中完成,其中Apache允许您定义网站。在该部分中,您将添加小写地图:

    <强>的httpd-vhosts.conf

    <VirtualHost *:80>
        ServerName yourwebsite.com    
        RewriteEngine on
        RewriteMap  lowercase int:tolower
    

    现在我们已经定义了一个名为lowercase的地图,该地图使用了Apache的内部tolower地图,我们可以在.htaccess文件中使用它来重写任何网址包含一个小写的大写字母。按该名称创建文件并将其放在网站的顶级公共目录中 - 通常为public_htmlwww。在此文件中,添加以下规则:

    <强>的.htaccess

    RewriteEngine on
    # Rule below must be above all other rewrite rules
    # It says: if path has uppercase, rewrite to lowercase
    RewriteCond %{REQUEST_URI} [A-Z]
    RewriteRule (.*) ${lowercase:$1} [R=301,L]
    

    现在,您的所有路径都是小写的(步骤1),如果用户尝试转到/BLOG,而是将她带到其他地方,服务器将重定向到/blog

答案 2 :(得分:-2)

linux服务器区分大小写,因此请重命名您的文件夹,因为这是您的路径,然后解决您的问题