【问题标题】:URL rewriting - Remove a subfolder from the urlURL 重写 - 从 url 中删除子文件夹
【发布时间】:2023-04-03 23:45:02
【问题描述】:

我不经常在 SOF 上提问,因为我通常只在 SOF 上搜索就能找到答案。这一次对我来说太难了!我对htaccess没有很多经验。其实我没有太多经验,现在离开学校 6 个月了!

我正在使用 Wordpress 4.9.8 和 Laravel 5.7 进行个人项目。 Wordpress 将用作入口点和文章部分,Laravel 将用作应用程序部分以显示来自数据库的大量信息。

我正在使用 Xampp 和 MySql Workbench 进行本地开发。

我正在使用虚拟主机来模拟域名。

项目在根文件夹中的结构如下:

  • Wordpress 文件夹和文件
  • htaccess
  • Laravel 文件夹
    • 来自 Laravel 的所有文件夹和文件
    • 公开
      • htaccess

项目网址是这样的:

  • dev.domain.com/ -->Wordpress 部分
  • dev.domain.com/plants/public --> Laravel 部分

我只需要隐藏 URL 的 "public" 文件夹,并且仍然可以访问该目录。 到目前为止,我能够使用 htaccess 直接跳过 Laravel 的根文件夹进行重定向。

  • dev.domain.com/plants 到 dev.domain.com/plants/public

在尝试了所有我认为有意义但不确定到底该放在哪里的东西之后,我似乎无法将手指放在上面。在项目的根目录下还是在这部分的公共目录中?

这是我在项目根目录中的内容:

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteBase /
   RewriteRule ^index\.php$ - [L]
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule . /index.php [L]

   RewriteCond %{REQUEST_URI} ^/plantes [NC]
   RewriteRule . plantes/public [L]
</IfModule>

我在公用文件夹中有什么:

<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]

    -- Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

</IfModule>

感谢您的帮助或提示!

【问题讨论】:

    标签: wordpress laravel url-rewriting


    【解决方案1】:

    在尝试了在 SOF 和其他地方找到的一些解决方案但没有成功后,我转身回顾了我构建项目的方式,看看是否有其他更简单的方法可以在没有 htaccess 的情况下做到这一点。

    这是新的结构:

    • Wordpress 文件夹和文件
    • htaccess(目前没有特别的规则,除了 WP 的规则)
    • 我的应用程序
      • Laravel 文件夹(包含 Laravel 中的所有文件夹和文件,公共文件夹除外)
        • 公用文件夹的内容

    为此,我们需要更改公共文件夹中 index.php 中的一些引用以反映新结构。

    索引.php:

    • 需要 DIR 。 '/Laravel/vendor/autoload.php';
    • $app = require_once DIR 。 '/Laravel/bootstrap/app.php';

    它是......它有效!

    www.domain.com/myapp/what-ever...

    没有带有公用文件夹的 URL。

    现在我需要更改“MyApp”的名称,以便它可以使用 htaccess 反映多语言。

    在搜索过程中,我发现这很有帮助:https://www.youtube.com/watch?v=ybJYyU5FPv4

    【讨论】:

      猜你喜欢
      • 2020-09-06
      • 2023-03-09
      • 1970-01-01
      • 2020-07-05
      • 1970-01-01
      • 1970-01-01
      • 2020-02-26
      • 2018-05-25
      • 2017-10-30
      相关资源
      最近更新 更多