【问题标题】:Remove /?home/ from URL (Remove Controller Name from URL And Leave Only Method) | CodeIgniterRemove /?home/ from URL (Remove Controller Name from URL And Leave Only Method) |代码点火器
【发布时间】:2021-09-24 19:07:52
【问题描述】:

嗨,亲爱的 Stackflow 社区,我是 Codeignite 编码的新手,所以我希望你们给我时间来解决这个错误,谢谢提前 :)

  1. 所以基本上我在这里遵循了一个教程,我从 URL 禁用了 index.php,该问题已修复,但这是我现在的 .htaccess,我仍然遇到 example.com/?home/signin 或 example.com/ 的问题?browse/ 或 /?admin/
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

RewriteCond %{QUERY_STRING} ^(.*)i=[^&]+(.*)$ [NC]
RewriteRule ^(.*)$ /$1?%1%2 [R=301,L]
</IfModule>
AddType text/vtt .vtt

但问题是我在 stackoverflow 中遵循了关于从 URL (如 /?home/ 或 /?browse/ )禁用控制器名称的每一个教程,并且每个控制器(如 /?admin/)在我的 URL 中显示我想要一个直接清理 url,没有控制器名称或 ?在其中标记我尝试按照教程转到我的 routes.php 以更改其中的内容,但仍然存在相同的问题是我的 routes.php 现在的样子

*/
$route['default_controller'] = 'Home';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

请帮助我,我尝试了每一个解决方案,但还没有,我想从 /?home/ 或 /?browse/ 等 URL 禁用控制器的名称,并且 /?admin/ 等每个控制器都显示在我的 URL 中直接想要一个干净的 url,没有控制器名称或 ?标记我的控制器是 Home、Admin、Browse、General、Payment、Updater 你能准确地举出例子,以便我可以尝试根据我的控制器解决问题

【问题讨论】:

  • 请管理员或任何人帮助我,我正在等待某人的帮助和回答
  • 嗨,“这里”没有链接,到底是什么问题(任何错误消息)?为什么下面的解决方案不行。我不熟悉 codeigniter,但您可能只想用自己的名字重做路线。到你自己的控制器。这里只是不清楚这个问题以及答案会是什么样子。
  • 你想在这里完成什么?您学习的教程在哪里?
  • 我想从 /?home/ 或 /?browse/ 之类的 URL 中禁用控制器的名称,并且 /?admin/ 之类的每个控制器都显示在我的 URL 中我想要一个干净的 url 直接没有控制器名称或?标记我的控制器是 Home、Admin、Browse、General、Payment、Updater 你能准确地举出它们的例子,所以我可以尝试根据我的控制器解决问题

标签: php mysql .htaccess codeigniter url


【解决方案1】:

用这个修改你的路由文件,我的建议是阅读更多关于 CodeIgniter 路由方法的信息

$route['signin'] = '/home/signin';

路由是这样工作的,根据需要更新路由文件

$route['YOUR_METHOD_NAME'] = '/YOUR_CONTROLLER_NAME/YOUR_METHOD_NAME';

【讨论】:

  • 我希望我的链接类似于 example.com/signin 而不是 example.com/?home/signin 我试图将其添加到我的 routes.php 此处 $route['signin'] = '/home/signin'; 但仍然无法正常工作仍然显示 example.com/?home/signin 请帮帮我
  • 如何链接该页面?您是否尝试在您的网址中仅访问 example.com/signin 或任何页面的标签?
【解决方案2】:

试试这个: 这是我的 htaccess

// .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
$route['404_override']         = 'my404';
$route['translate_uri_dashes'] = false;

$route['default_controller'] = '/Home';
$route['home']                  =  '/Home/index';
$route['user-list']                     = '/Admin/users';
$route['setting']                           = '/General/account';
$route['payment-paypal']            = '/Payment/paymentByPaypal';

并以这种方式访问​​:http://localhost/(这会使用 index 方法访问 Home 控制器) 或 http://localhost/payment-paypal(这通过 PaymentByPaypal 方法访问支付控制器)

【讨论】:

  • 真的很抱歉,先生,但是您在西班牙网站上举的例子对我来说根本不起作用,我的控制器是 Home、Admin、Browse、General、Payment、Updater 你能准确地举出例子吗?可以试试
  • 您可以举个例子说明您希望如何拥有您的网址。
  • 我希望我的链接类似于 example.com/signin 而不是 example.com/?home/signin 我试图将其添加到我的 routes.php 此处 $route['signin'] = '/home/signin'; 但仍然无法正常工作仍然显示 example.com/?home/signin 请帮帮我
  • 你改变了你的 htacces 吗?
  • 是的,我做到了,但它返回 index.php 到 url 我希望删除它们两个 index.php?和控制器
猜你喜欢
  • 1970-01-01
  • 2022-12-27
  • 2020-12-10
  • 2022-12-16
  • 2022-12-28
  • 2022-11-20
  • 2022-05-17
  • 2022-12-19
  • 2018-08-10
相关资源
最近更新 更多