apache Setup子目录重定向到Laravel项目

zzzyeukh  于 2023-05-18  发布在  Apache
关注(0)|答案(3)|浏览(110)

我有三个项目,第一个是静态HTML网站和其他2个项目Laravel项目。
我有一个SSL证书为主网站设置。我想设置其他Laravel项目作为主URL的子目录。
我在我的配置文件里加了一个别名,但它不起作用。我得到这个错误:尝试打开“https://example.com/admin/“时发生了太多重定向。如果您打开的页面被重定向为打开另一个页面,然后被重定向为打开原始页面,则可能会发生这种情况。”
有什么变化,我应该添加到htaccess文件?
这是我的网站.conf文件

<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / https://example.com/
</VirtualHost>

<VirtualHost *:443>
    ServerName example.com
    ServerAlias www.example.com
    SSLEngine on
    SSLCertificateFile      /etc/apache2/ssl/***********.crt
    SSLCertificateKeyFile  /etc/apache2/ssl/*********.key
    SSLCertificateChainFile /etc/apache2/ssl/*********.crt

    ServerAdmin admin@example.com
    DocumentRoot /var/www/html/example/public_html/
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /admin "/var/www/html/admin"
    <Directory "/var/www/html/admin">
             Options Indexes FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from all
    </Directory>

Alias /admin2  "/var/www/html/admin2"
<Directory "/var/www/html/admin2">
         Options Indexes FollowSymLinks
         AllowOverride All
         Order allow,deny
         Allow from all
</Directory>
vhmi4jdf

vhmi4jdf1#

我建议看看Vagrant with Laravel宅基地prebuilt box。这将通过编辑宅基地.yaml文件、/etc/hosts文件,然后配置vagrant机器来实现您想要做的事情。你需要安装虚拟盒子才能使用vagrant。您可以通过在宅基地目录中输入vagrantssh来SSH进入机器。
文件:https://laravel.com/docs/5.4/homestead
YouTube上关于Vagrant的视频:https://www.youtube.com/watch?v=LyIyyFDgO4o
Youtube上关于安装Laravel宅基地的视频:https://www.youtube.com/watch?v=tbPGuikTzKk&list=PLfdtiltiRHWEaImCreOC7UkK4U5Xv9LdI

kuarbcqp

kuarbcqp2#

你应该在apache设置中使用 public 文件夹作为别名。
尝试**"/var/www/html/admin 2/public”**,也可以尝试目录。
就像这样:

Alias /admin2  "/var/www/html/admin2/public"
<Directory "/var/www/html/admin2/public">
         Options Indexes FollowSymLinks
         AllowOverride All
         Order allow,deny
         Allow from all
</Directory>

取决于Laravel的安装,您应该在公共目录中有一个.htaccess文件,这可能需要一些额外的tweaking。
此外,一旦你做了更改,重新启动apache。

hyrbngr7

hyrbngr73#

你需要正确设置两件事:

  1. WAMP别名文件夹中的站点别名,例如C:\wamp\alias将URL重定向到Laravel文件夹中的public\index.php
    1.在Laravel的public文件夹中重写基本.htaccess,以便Apache在基本路径的顶部重写。
    假设站点的目录位于C:\wamp\www\site中,别名为localhost/alias
    1.将别名设置为指向public文件夹:
Alias /site  "/var/www/site/public"
    <Directory "/var/www/site/public">
             Options Indexes FollowSymLinks
             AllowOverride All
             Order allow,deny
             Allow from all
    </Directory>

1.在Laravel的public文件夹中的.htaccess中添加RewriteBase

<IfModule mod_rewrite.c>
        <IfModule mod_negotiation.c>
            Options -MultiViews -Indexes
        </IfModule>
    
        RewriteEngine On
        RewriteBase '/site/'
    
        # 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>

相关问题