【问题标题】:How to change the codeigniter's URL using .htaccess file如何使用 .htaccess 文件更改 codeigniter 的 URL
【发布时间】:2019-09-15 16:15:37
【问题描述】:

我想知道如何使用 .htaccess 文件进行 URL 重写。 我的 Web 应用程序基于 PHP CodeIgniter,我将实现 SEF 函数。

当前网址是

http://localhost/index.php/sale/list

在此 URL 中,“sale”是控制器名称,“list”是方法名称。 我想用http://localhost/index.php/product-sales/list替换网址

如果你很了解 .htaccess,我认为这可以通过 .htaccess 文件轻松完成。

感谢您的关注和时间。 问候,

【问题讨论】:

  • 为什么不在路由文件中更改您的路由。 codeigniter.com/user_guide/general/routing.html
  • 嗨丹尼尔,我知道我可以在路由中更改它。但是 db 上已经有很多旧的 url。所以我想用 .htacess 文件解决这个问题。
  • 您想根据某些参数仅重定向 1 个链接还是多个链接?
  • 嗨 Mikeyhun,我想更改控制器的部分。我认为这是1个链接。例如sale/list、sale/update、sale/search?order_by=xxx 等。以上网址应替换为 product-sales/list、product-sales/udpate 和 product-sales/search?order_by。
  • 有很多关于这方面的教程:wpscholar.com/blog/simple-redirects-with-htaccess ...但我不会朝那个方向走,而是开始在你的路由系统中输入内容。如果你不修复应该修复的东西,你只会在你的应用程序中添加更多的污垢。

标签: php .htaccess codeigniter


【解决方案1】:

将其放入您的 .htaccess 文件中,并将 index.php/sale/... 的所有内容重写为 index.php/product-sales/...

RewriteEngine on

RewriteRule ^index\.php/sale/(.+)$ index.php/product-sales/$1 [R=301,L]

但我同意@Daniel 的观点,在系统中而不是在 htaccess 中修复它可能会更好

编辑:如果我现在理解它,你只想为同一个控制器有一个新的 url,所以在你将上面的规则添加到你的 htaccess 之后(所以你将旧的 url 重定向到新的)你仍然需要将新路由添加到路由文件中,例如:

$route['product-sales/(:any)'] = 'sale/$1';

它现在应该可以工作了,如果这不是预期的效果,请解释更多...

【讨论】:

  • 感谢您的回复。但我无法解决它。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index.php/orders/(.+)$ index.php/product-sales/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^demo RewriteCond %{HTTP_HOST} phppointofsale.com RewriteRule ^robots\.txt$ robots_allow.txt </IfModule>
  • 另外,我在本地虚拟主机上运行 Codeigniter。@Mikeyhun
  • 等等!您仍在使用“销售”控制器并希望将 /sale/ 和 /product-sales/ 中的所有内容重定向到“销售”控制器,或者您制作了一个新控制器?我现在有点困惑(还有你写 /orders/ 重写为 'product-sales'
  • 抱歉造成混淆。但我认为控制器名称订单和销售在这个主题上没有区别。
【解决方案2】:

所有路由都在 route.php 文件中定义。

导航到您的项目。 打开 application/config/routes.php 文件。

$route['sale/list'] = 'product-sales/list/';

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    • 1970-01-01
    相关资源
    最近更新 更多