【问题标题】:Codeigniter URL routing solution for my website我的网站的 Codeigniter URL 路由解决方案
【发布时间】:2013-06-14 04:21:52
【问题描述】:

我有一个使用 CodeIgniter 开发的网站。我为我的网址添加了如下路线:

$route['about_us'] = 'about-us';

现在我有一个问题。 IE。当我在寻找网址 www.mysite.com/about_us 时,它可以工作,同时 www.mysite.com/about-us 也可以工作。我只希望一个 url 起作用:带有下划线的那个。

我已将其删除到:

$route['about_us'] = 'about-us';

但网址 www.mysite.com/about-us 仍然有效。这可能会导致我的网站在 Google 中出现重复内容,因此还会显示更多页面链接。即使我也没有那个功能。喜欢 www.mysite.com/about_us/design。同样在 about_us 控制器文件索引函数中只有那里,但在 Google 中调用设计方法。

我该如何解决这个问题?

【问题讨论】:

  • 完全没有路由规则并且名为about_us 的控制器是否可以使用连字符URL?
  • 如果你真的关心 SEO,你应该在 URLS 中使用破折号而不是下划线。 blog.woorank.com/2013/04/… 。 IE。本页网址^
  • 我关心 seo onluy.. 如果两个 url 如此相同的内容意味着它会导致重复.. 我想要下划线或连字符.. 如果下划线工作,那么连字符将不起作用。或连字符将起作用下划线将不起作用..我为此提供解决方案

标签: codeigniter routing


【解决方案1】:

这里实际上不需要路线。以您使用它的方式请求路由的正常目的是,当类和函数名称中不允许使用连字符时,您可以使用带连字符的 URL。 IE。你想要www.example.com/test-controller 的url,但你实际上不能命名控制器test-controller,因为连字符是非法的。

如果您只想使用带下划线的 URL,例如 www.mysite.com/about_us,那么只需完全删除路由并将控制器命名为 about_us。如果没有路由规则,连字符的 url 应该是 404。

【讨论】:

  • 我已经完全删除了路由,但是 url 没有显示 404 页面它显示的是 about_us 页面:(
  • 你的控制器类叫什么名字?此外,您的任何 .htaccess 文件中是否有任何 mod_rewrite 规则可能会重写 URL?
  • 我的控制器名称是 about_us。当我将地址栏放置在 about_us 仅工作时,我想要解决方案。如果我输入 about-us,它将显示 404 ..这是我想要的 ..请任何人提供解决方案
  • 如果没有适当的路由,它应该已经显示 404 错误,除非在某处设置了一些奇怪的重写或配置选项来重新路由它。您可以选择做的一件事是将错误的 url 显式路由到不存在的控制器。您根本不需要这样做,但可以使用路由 $route['about-us.*'] = 'void'; 来完成,前提是 void 不是控制器名称。
  • 再次重申,这根本不是必需的,但此路由会将包含连字符的任何 URI 重定向到 404。请谨慎使用。编辑:该死的输入按钮,一秒
猜你喜欢
  • 2011-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-26
  • 1970-01-01
  • 2018-11-19
  • 1970-01-01
相关资源
最近更新 更多