只允许index.php调用,我怎样才能删除“public / index.php”在URL生成laravel?

选项1:使用.htaccess

如果它不在那里,请在Laravel根目录下创build一个.htaccess文件。 如果Laravel根目录不存在,请创build一个.htaccess文件。 (通常在你的public_html文件夹下)

编辑.htaccess文件,使其包含以下代码:

RewriteEngine On RewriteRule ^(.*)$ public/$1 [L]

现在你应该可以访问没有“/public/index.php/”部分的网站。

选项2:将“/ public”目录中的内容移动到根目录

在根目录中创build一个新文件夹,并移动除公用文件夹之外的所有文件和文件夹。 你可以任意调用它。 我将使用“laravel_code”。

接下来,将所有内容移出公共目录并放到根文件夹中。 它应该导致一些有点类似于这个:

5a81f5cab8b86aa54f63539e9cee3042.png

之后,我们所要做的就是编辑laravel_code/bootstrap/paths.php文件和index.php文件中的位置。

在laravel_code/bootstrap/paths.phpfind以下代码行:

'app' => __DIR__.'/../app', 'public' => __DIR__.'/../public',

并将其更改为:

'app' => __DIR__.'/../app', 'public' => __DIR__.'/../../',

在index.php ,find这些行:

require __DIR__.'/../bootstrap/autoload.php'; $app = require_once __DIR__.'/../bootstrap/start.php';

并将其更改为:

require __DIR__.'/laravel_code/bootstrap/autoload.php'; $app = require_once __DIR__.'/laravel_code/bootstrap/start.php';

来源: 如何从Laravel中删除/公开/ URL

我在Laravel 4.2上试过这个

将Laravel根文件夹中的server.php重命名为index.php ,并将.htaccess文件从/public目录复制到您的Laravel根文件夹。

我希望它的作品

这是简单的步骤来删除URL中的公开(Laravel 5)

1:复制公用文件夹中的所有文件,并将其放在laravel根文件夹中

2:打开index.php并更改

require __DIR__.'/../bootstrap/autoload.php';

require __DIR__.'/bootstrap/autoload.php';

$app = require_once __DIR__.'/../bootstrap/app.php';

$app = require_once __DIR__.'/bootstrap/app.php';

在laravel 4path2中是$app = require_once __DIR__.'/bootstrap/start.php'; 而不是$app = require_once __DIR__.'/bootstrap/app.php';/app.php

这就对了。

1)检查mod_rewrite是否启用。 转到/etc/apache2/mods-enabled目录,查看rewrite.load是否可用。 如果没有,使用命令sudo a2enmod rewrite启用它。它将启用重写模块。 如果它已经启用,它将显示消息Module rewrite already enabled 。

2)为公共目录创build一个虚拟主机,这样就可以像http://example.com/index.php一样使用http://localhost/public/index.php 。 [因此公用文件夹名称将被隐藏]

3)然后创build一个.htaccess这将隐藏index.php从你的url里面的根目录(公用文件夹)

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

这可能与Laravel和你的Apacheconfiguration无关。

你有访问你的Apache服务器configuration吗? 如果是这样,请从文档中查看:

一般来说,只有当您无法访问主服务器configuration文件时,才应该使用.htaccess文件。 例如,有一种常见的误解,认为用户身份validation应该始终在.htaccess文件中完成,而在最近几年,还有另一个误解,即mod_rewrite指令必须在.htaccess文件中进行。 这根本不是那么回事。 您可以将用户身份validationconfiguration置于主服务器configuration中,事实上,这是做事情的首选方式。 同样,在主服务器configuration中,mod_rewrite指令在许多方面工作得更好。

…一般来说,应尽可能避免使用.htaccess文件。 您可能会考虑放入.htaccess文件的任何configuration都可以在您的主服务器configuration文件的一个部分中进行。

来源: Apache文档 。

我之所以首先提到这一点,是因为如果可以,最好彻底摆脱.htaccess ,并在VirtualHost标签内使用Directory标签。 这就是说,其余的这一切将假设你无论出于何种原因都坚持使用.htaccess路线。

为了解决这个问题,可能会发生一些事情:

我注意到,也许毫无意义的是,你的文件在你的问题中被命名为.htacces 。 我的猜测是这是一个拼写错误,但是如果你忽略了这个错误,那实际上只是错过了第二个错误,这正是那种让我把头撞到墙上寻找更具挑战性的小错误。

您的服务器.htaccess 。 要检查这个,转到你的Apacheconfiguration文件。 在现代的Apache构build中,这通常不在一个configuration文件中,因此请确保您使用的是指向您的应用程序的地方。 更改

AllowOverride none

AllowOverride all

作为后续,Apache文档还build议,出于安全的目的,如果您打算去.htaccess重写,则不要为每个文件夹执行此操作。 相反,请为需要添加.htaccess的文件夹执行此操作。

你有mod_rewrite启用? 这可能是导致问题。 我注意到你的标签在顶部 。 尝试注释掉这些标签并重新启动Apache。 如果你得到一个错误,那么这可能是因为你需要启用mod_rewrite : 如何启用Apache 2.2的mod_rewrite

希望这可以帮助。 我已经列举了一些最常见的问题,但还有其他几个可能更为普通或独特的问题。 在开发服务器上的另一个build议? 重新安装Apache。 如果可能的话,从一个不错的教程,从不同的来源。

不要混淆下面的代码片段的其他选项我将使用,也将对你有用。 把下面的htacces放在你的根目录下。

RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L]

去你的公共目录,并把下面的代码片段的另一个htaccess文件

RewriteEngine On # Removes index.php from ExpressionEngine URLs RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 [PT,L]

它的工作…!

确保mod_rewrite已启用,并且您的主path被设置为您的应用程序的公共目录。

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

在.htaccess中使用此并重新启动服务器

希望这有助于像我这样做。

RewriteEngine on RewriteCond %{REQUEST_URI} !^public RewriteRule ^(.*)$ public/$1 [L]

将Laravel根文件夹中的server.php重命名为index.php,并将.htaccess文件从/ public目录复制到您的Laravel根文件夹。 – 而已 !! 🙂

我刚安装了一个项目的Laravel 5,在根目录下有一个名为server.php的文件。 只要将其更改为index.php,它可以工作,或在terminal,键入

$ cp server.php index.php

对于Laravel 4&5:

将Laravel根文件夹中的server.php重命名为index.php

将.htaccess文件从/ public目录复制到您的Laravel根文件夹。

而已 !! 🙂

RewriteEngine On RewriteRule ^(.*)/(public)/(index.php)/$ $1/$4 [L]

按照Laravel 5.3 ,上述事情将无法正常工作,但请冷静并遵循以下步骤:

步骤1.进入laravel项目的内部

第2步。使一个随机目录/文件夹例如。 laravelcode

第3步。移动所有文件夹和文件(公用文件夹除外)

第4步。将公用文件夹内的所有文件夹和文件移动到laravel项目

第5步。现在在laravel项目中有index.php文件,请打开它,并根据以前的新path更改bootstrap的文件夹path,这是“require DIR 。”/ .. / bootstrap / autoload.php';“ 现在它会变成“需要DIR 。”/ laravelcode / bootstrap / autoload.php';“

这就是运行你的url没有公共和index.php像下面http:// localhost / blog /

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明 YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明YOLO高分设计资源源码,详情请查看资源内容中使用说明
要向 `http://localhost:8089/public/index.php/` 地址发送请求,你可以使用uniapp提供的内置的网络请求函数进行操作。 以下是一个示例代码,演示如何使用uniapp发送HTTP请求: ```javascript // 引入uniapp的网络请求函数 import { request } from '@/common/utils/request' // 发送请求的方法 async function sendRequest() { try { // 发送GET请求 const response = await request.get('http://localhost:8089/public/index.php/') console.log(response.data) // 请求成功时的响应数据 // 发送POST请求 const data = { username: 'example', password: 'password' } const response = await request.post('http://localhost:8089/public/index.php/', data) console.log(response.data) // 请求成功时的响应数据 } catch (error) { console.error(error) // 请求失败时的错误信息 } } // 调用发送请求的方法 sendRequest() ``` 在上述代码中,我们首先引入了uniapp中的网络请求函数 `request`。然后在 `sendRequest` 方法中,我们使用 `await` 关键字来发送GET和POST请求。通过 `request.get` 和 `request.post` 可以指定请求的URL,并传递需要发送的数据。在成功接收到响应时,我们可以通过 `response.data` 来访问响应数据。如果请求失败,将会抛出一个错误,我们可以通过 `catch` 块来处理错误信息。 需要注意的是,上述代码中使用了 `@/common/utils/request`,这是一个示例路径,你需要根据你的项目实际情况进行修改和替换。另外,具体的请求方式(GET、POST等)和数据格式(JSON、FormData等)可能根据你的后台接口的要求进行调整。 此外,还可以使用其他类似的网络请求库,比如axios等,根据你的项目需求进行选择和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值