网址重写-从网址中删除子文件夹

时间:2018-12-02 23:45:40

标签: wordpress laravel url-rewriting

我不经常在SOF上提问,因为我通常只是在SOF上搜索才能找到答案。这次对我来说是艰难的!我没有htaccess的丰富经验。实际上,我没有太多经验,现在要放学6个月!

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

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

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

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

  • Wordpress文件夹和文件
  • htaccess
  • Laravel文件夹
    • Laravel中的所有文件夹和文件
    • 公共
      • htaccess

项目URL如下:

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

我只需要隐藏URL的“公共” 文件夹,并且仍然可以访问该目录。 到目前为止,我可以使用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>

感谢您的帮助或提示!

1 个答案:

答案 0 :(得分:0)

尝试了一些在SOF和其他地方找到的解决方案而没有获得任何成功之后,我转过头来回顾我构造项目的方式,看看是否还有其他更简单的方法可以在没有htaccess的情况下进行此操作。

这是新结构:

  • Wordpress文件夹和文件
  • htaccess(到目前为止,除了WP格式的规则外,这里没有其他特殊规则)
  • MyApp
    • Laravel文件夹(包含除公共文件夹之外的所有Laravel文件夹和文件)
      • 公用文件夹的内容

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

Index.php:

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

那是...有效!

www.domain.com/myapp/无论如何...

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

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

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