【问题标题】:How to remove the root folder name from codeigniter application如何从 codeigniter 应用程序中删除根文件夹名称
【发布时间】:2020-05-28 21:18:53
【问题描述】:

我的网站托管在https://www.webdomain.com/ 上述域中的托管网站不是 CODEIGNITER

在服务器上的my_username/public_html/www/myproject 位置,托管了一个 Codeigniter 应用程序。

意思是,在myproject 应用程序中访问controller 及其function

我使用以下网址

https://webdomain.com/myproject/controller/function

您可能已经注意到,myproject 是 Codeigniter 应用程序的根文件夹

我一直在尝试从 URL 中删除 myproject,但没有成功。

我已经解决了几个关于堆栈溢出的问题,但我发现,所有这些问题都涉及项目目录,不一定是应用程序根目录。就我而言,我想从 URL 中删除根目录的名称 myproject

这是我的.htaccess


RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1

【问题讨论】:

  • 为什么不将您的域https://webdomain.com/ 直接指向my_username/public_html/www/myproject

标签: php .htaccess codeigniter url-rewriting shared-hosting


【解决方案1】:

试试这个:

RewriteRule ^myproject/(.*)$ $1 [R]

这需要在根文件夹中,我强烈建议您在评论中使用@vivek_23 建议。

【讨论】:

  • 指向域将不起作用,因为我在主网站上使用它,然后 CodeIgniter 应用程序是我们移动应用程序的后端
  • 然后你可以创建子域并将其指向myproject.
  • 为了更清楚,您正在从 my_username/public_html/www 目录运行主网站,而您的后端代码在 my_username/public_html/www/myproject/ 目录中运行,对吗?
【解决方案2】:

你有没有尝试在 route.php 文件中设置路由?

$route['controller/function'] = 'myproject/controller/function';

【讨论】:

  • 我很欣赏这个答案,但是,这不起作用。
【解决方案3】:

试试.htaccess。我主要在localhost 机器上使用它。此.htaccess 文件应位于myproject 文件夹的root 中。这是有关更多信息的文档https://httpd.apache.org/docs/current/howto/htaccess.html

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /myproject/
    RewriteCond $1 !^(index\.php|resources|robots\.txt)
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L,QSA]

</IfModule>

希望这会有所帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2019-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    相关资源
    最近更新 更多