0

我正在为我的网站创建一个词汇表,它将在我的网站上显示术语的定义。

我有一切工作。但是,如果我的 uri 段 3 包含字母表中的字母以外的任何内容,我想显示 404 。

我的词汇表网址目前看起来像:

www.mydomain.com/tools/glossary/a
www.mydomain.com/tools/glossary/b
www.mydomain.com/tools/glossary/c
...

如果用户输入的字符串不在字母表中,我想显示 404:

例子

www.mydomain.com/tools/glossary/tree

在我的词汇表功能中,我添加了以下内容:

        if($this->uri->segment(3)) {
            if($this->uri->segment(3) !== 'a' || 'b' || 'c' .... 'z') {
                show_404();
            }
        }

我怎样才能让上面的代码工作?

如果第三个 uri 段不等于 a 和 z 之间的字母,则显示 404?

4

3 回答 3

4

你可以试试这个(控制器工具.php)

  function glossary($letter)  
  {
   if(!preg_match('/^[a-z]$/',$letter))
    {
       show_404();
    }
    else
    {
      echo 'match';
      //do something with $letter
    }
   }

测试:

a  'match'
b  'match'
ab  404
1   404
于 2011-12-06T13:15:26.737 回答
0

您可以使用“路由”处理此问题

还可以考虑使用 301 重定向而不是 404,这可能有助于 SEO。

HTH。

于 2011-12-06T13:15:58.223 回答
0

我不使用 PHP 但不是 || 或运算符?你需要一个 AND 运算符。

于 2011-12-06T13:21:08.303 回答