【问题标题】:Hiding controller and method from the URL but show only title name从 URL 中隐藏控制器和方法,但仅显示标题名称
【发布时间】:2017-06-25 18:04:42
【问题描述】:

我查看了建议的答案(如 stakoverflow 所说,可能重复)。它提供了帮助,但没有解决问题,因为它无助于根据我的需要创建干净的 URL。它有控制器作为我不想看到的 URL 的一部分,如下所述。

我正在 Codeigniter 中开发一个教程网站,并寻找一种生成 SEO 友好 URL 的方法,例如

www.crdlabs.com/how-to-use-multidimensional-arrays

而不是

www.crdlabs.com/home/index/how-to-use-multidimensional-arrays

谁能分享他的想法?谢谢

【问题讨论】:

  • 查看 URL 重写。从谷歌搜索“漂亮的 URL”或类似内容开始。这是一种非常普遍的做法。不用在这里问。
  • 嗨斯图尔特。感谢你的信息。我在早期的应用程序中实现了重写 URL。自从我开始使用 codeigniter 以来,我有点不确定获得漂亮 url 并牢记 MVC 架构的技术。
  • @Stuart。谢谢。我在这里提问之前阅读了该答案,因为我在之前没有 MVC 的应用程序中使用了相同的方法。当我使用codeigniter时,路由似乎有点不同。感谢您的努力
  • 那个问题是关于 CodeIgniter 的。给定的答案应该有效。

标签: php codeigniter


【解决方案1】:

将此添加到您的根 .htaccess 文件中:

RewriteRule ^(.*)$ index.php?title=$1 [NC,L,QSA]

然后在你的 index.php 中获取标题 $title = $_GET['title'] 并用它做任何你喜欢的事情,比如在你的数据库中查询并根据标题返回数据!

【讨论】:

  • 最好使用 routes.php 文件来管理这个而不是这个方法..
  • 控制器总是一样的? @user7321290
  • 是的,但我只是不希望它出现在 URL 中。我计划创建一个新的控制器来显示网页。
  • @user7321290 好吧,我不确定它是否适合你,但我会更新我的答案!
【解决方案2】:

首先,您需要从 URL 中隐藏 index.php,因此在根文件夹中创建 .htaccess 文件并添加此代码

.htaccess

DirectoryIndex index.php
RewriteEngine on                       
RewriteCond $1 !^(index\.php|(.*)\.swf|forums|images|css|downloads|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?$1 [L,QSA] 

然后打开 application/config/routes.php 位置的 routes.php 文件 并添加这个

$route['how-to-use-multidimensional-arrays'] = 'home/how-to-use-multidimensional-arrays';

这将作为 SEO 友好的 URL 工作

【讨论】:

  • 您的新网址类似于 www.crdlabs.com/how-to-use-multidimensional-arrays
  • 感谢您的帮助。没有 index.php 文件,但 index() 是控制器 Home() 的一种方法。在使用 .htaccess 文件在这里提出问题之前,我删除了 index.php。我希望你更接近给出完美的解决方案。您的路由必须适用于我在应用程序中创建的尽可能多的页面。但是这个 "$route['how-to-use-multidimensional-arrays'] = 'home/how-to-use-multidimensional-arrays'; "似乎只适用于 $route[]; 中的标题我需要一个路由来处理所有人的路由。非常感谢您提供更多建议。
  • 根据我们评论的这个答案,您需要使用路线见codeigniter.com/userguide3/general/routing.html
猜你喜欢
  • 1970-01-01
  • 2014-08-16
  • 1970-01-01
  • 1970-01-01
  • 2016-05-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多