我有一个建立在Laravel 9上的网站.现在,出于某种原因,我需要在根目录(Httpdocs)中添加一个名为"News"的文件夹/目录.

当我访问我的网站(如mywebsite.com)时,Laravel网站的罚款与预期不谋而合,但当我访问mywebsite.com/News时,Laravel机制启动并显示错误页面.

所以我的问题是,当我访问"新闻"目录和"新闻"中的内容时,如何才能(通过.htaccess或等)使Laravel不被激活?

My.htAccess in root目前有这三行

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

public文件夹中的.htaccess包含以下内容-

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]   

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Send Requests To Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

我在使用apache Plesk服务器.There are similar looking questions on StackOverflow but none mets my requirement

推荐答案

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

您可以向根.htaccess文件添加另一个条件(RewriteCond指令),以防止将请求重写到(Laravel)/public子目录.然而,您现有的条件是不正确的,always将会成功(尽管严格地说,无论如何这是不必要的--这就是它仍然"工作"的原因--因为/public/.htaccess文件的存在有效地防止了重写循环).它应该是^/public(带斜杠),而不是!^public.

例如:

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

仅当REQUEST_URI变量(根相对URL路径)不是(!)以/news开头时,第一个condition才成功.

如果您愿意,可以通过更改正则表达式来组合这两个条件.也就是说.!^/(public|news).

或者,在public子目录中添加news目录(即/public/news)然后,您不需要更改任何.htaccess文件.(尽管如上所述,您仍然应该"更正"根.htaccess文件.)

Php相关问答推荐

如何在WordPress中为特定自定义帖子类型自定义URL struct

根据特定运输类别增加WooCommerce购物车总重量

在没有symfony应用程序的情况下使用安全Bundle 包时,缺少配置构建器类

如何确保所有语言文件都使用Laravel中的新密钥进行更新?

Laravel Nova不使用数组键作为筛选器中的选项值

laravel中获取的数据会自动更改时间戳值

如何在UML类图中可视化变量引用数组

如何配置我的.env文件以在laravel的一个项目中连接两个不同的数据库?

使用DOMPDF获取PDF格式的本 map 像

Woocommerce单一产品Ajax添加到带有自定义购物车项目数据的购物车

Woocommerce 临时购物车税未根据第一个请求正确计算

URL中包含"&"与DirectoryIterator不兼容

Shopware 6.4.20店铺激活问题

Xdebug 不会在断点处停止

php如何删除括号内的百分比值

php/html OnSubmit 禁用输入类型提交未给出预期结果

为什么在解压缩具有混合字符串和 int 键的关联数组时出现错误消息无法使用位置参数...?

使用 RSA 2048 公钥验证 RSA PKCS#1v1.5 SHA 256 签名

Laravel 10 单元测试看不到来自 Artisan Command 的数据库更改

按数字然后按字符串对关联 PHP 数组进行排序