搜尋

首頁  >  問答  >  主體

web - LINUX服务器是怎么解决URL的大小写问题??

LINUX服务器是区分大小写的,
比如你换成LINUX服务器大写的URL是打不开的,而且对于搜索引擎也不友好

那如何解决这个问题呢,让用户输入大写时,也跳转到小写的URL页面。
尽量减少大写造成的影响。

求具体解决方案。

怪我咯怪我咯2877 天前833

全部回覆(5)我來回復

  • 怪我咯

    怪我咯2017-04-17 11:06:05

    轉自:http://www.ithr.org.cn/blogs/blog1.ph...

    大小寫敏感,有時候不方便,一定要寫準確才能訪問,對搜索引擎和用戶不是很友好。。
    造成此現象主要原因是缺少speling模塊,因此隻要在相應的係統裏加載就可以了。
    一、Debian係統
    debian係統下相對比較簡單
    1、從路徑/etc/apache2/mods-available下找到speling.load ,將其複製到路徑 /etc/apache2/mods-enabled 下
    2、將文件speling.conf寫至目錄 /etc/apache2/mods-enabled
    speling.conf的內容非常簡單,我寫的隻有如下一行:
    CheckSpelling on
    3、將speling.load和speling.conf都添加到/etc/apache2/mods-enabled下之後,再重啟一下apache就可以了
    二、CentOS係統
    centos係統下略煩一點點。
    1、查看係統有無無模塊mod_speling.so,路徑:/etc/httpd/modules;如果有就直接pass,沒有自己從別處down一個過來用
    2、加載此模塊

    • vi /etc/httpd/conf/httpd.conf

    在模塊加載區域,添加如下一行:
    LoadModule speling_module modules/mod_speling.so
    CheckSpelling on
    保存修改,退出
    3、重啟httpd服務

    回覆
    0
  • 迷茫

    迷茫2017-04-17 11:06:05

    如果你是用Apache的,可以用mod_rewrite裏的RewriteMap。添加這麼一條:

    RewriteRule (.*)$  [NC]

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 11:06:05

    apache還可以這樣用:思路是,把代碼寫進404頁麵(404.php),然後服務器會把請求的URL全部轉換成小寫,轉換後能找到就跳到新頁麵,仍舊找不到就返回首頁。

    /**
    * @file nofound.php
    * @version 1.0
    * @author hyperjiang
    * @date 2007-07-11
    * @brief Try to redirect to correct url.
    */
    
    $url = @$_SERVER['REQUEST_URI'];
    if (empty($url)) {
    header(”Location: /”);
    exit;
    }
    
    $newurl = strtolower($url);
    if ($url == $newurl) header(”Location: /”);
    else header(”Location: $newurl”);
    ?>

    注:1.本代碼作者:hyperjiang URL:http://hi.baidu.com/frag/blog/item/52...

    PS,這個代碼我並沒有測試過。

    不過,我真心建議你,新的url就用小寫,老的url可以用rewrite來跳轉。

    如果是nginx服務器,用perl_set就可以了

    回覆
    0
  • 迷茫

    迷茫2017-04-17 11:06:05

    『對搜索引擎不友好』?
    您說的是百度那個大小寫不區分的土鱉搜索引擎嗎?

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 11:06:05

    一律小寫。在URL中出現大寫已經不友好了。

    回覆
    0
  • 取消回覆