【问题标题】:connection of two .htaccess files两个 .htaccess 文件的连接
【发布时间】:2015-09-01 00:29:46
【问题描述】:

在我的网站上目前正在运行 wordpress,所以我的 .htaccess 看起来像这样:

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

但我需要在那里测试其他(laravel)应用程序。如果我用这个替换 .htaccess:

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

我的 laravel 应用程序有效。有什么办法可以让这两个应用程序继续工作吗? 具体来说,如果第二个应用程序仅在某个别名上运行会很好,例如www.mysite.com/secreturl。我试着像这样组合它:

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


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

但我什么也做不了。谢谢。

【问题讨论】:

  • 在自己的目录或子域中运行每个
  • 就没有办法组合吗?在自己的目录中运行不起作用,子域将是我最后的机会,因为我的主机有一个有点奇怪的文件夹结构
  • 您的 wordpress 在 public_html 中,laravel 在 public_html 中,它的公用文件夹在 public_html/public 中?
  • 不,我的 ftp 的结构是 www->domains->xxx.com,所以 wp 在 xxx.com,laravel 在 xxx.com/laravel 和 xxx.com/public 中是 int跨度>

标签: php wordpress apache .htaccess laravel


【解决方案1】:

您不能将两个应用程序放在同一个目录中,因为它们都需要 index.php 作为应用程序入口点并且会产生冲突(Laravel 的 public 目录也不应该在文档根目录中,它应该成为文档根目录)。

您应该使用子目录或子域中的虚拟主机来服务 Laravel 应用程序(如果这是次要的)。这是使用子域的示例:

<VirtualHost *:80>
    ServerName laravelapp.example.com
    DocumentRoot "/path/to/larvel/app/public"

    <Directory "/path/to/larvel/app/public">
        AllowOverride all
    </Directory>
</VirtualHost>

【讨论】:

  • 我无权执行您的示例代码之类的任何操作。如果我将 laravel 放入子目录,则路由不起作用。
  • 如果您使用的是共享服务器,请在控制面板的帮助下创建一个子域(通常会在您的文档根目录中创建一个带有子域名的子目录)。将您的 Laravel 应用程序代码移动到该子目录,然后关注 this tutorial 了解如何在共享主机上设置 Laravel(因为共享主机服务通常有限制,而 Laravel 不是为此而设计的)。本教程适用于 GoDaddy,但您可以从中推断出必要的步骤并在任何主机上使用它们。
  • 我已按照该教程进行操作。但它只是不工作。问题是我的主机具有这样的结构:www/domains/xxx.com、www/subdom/name,并且我必须在 www 中有 1 个 .htacces(以让域、别名、子域正常工作)。当我用我的 wp .htaccess 替换它时它只工作了一次(不在子域中 - 它在那里不起作用 - 我只能设置主页)
猜你喜欢
  • 2022-01-27
  • 1970-01-01
  • 2012-03-07
  • 2022-11-17
  • 1970-01-01
  • 2021-12-23
  • 1970-01-01
相关资源
最近更新 更多