我有三个项目,第一个是静态html网站,其他2个项目是Laravel项目。
我为主网站设置了SSL证书。我想将其他Laravel项目设置为主URL的子目录。
我在我的conf文件中添加了别名,但它不起作用。我收到此错误:“尝试打开”https://example.com/admin/“时发生了太多重定向。如果您打开一个重定向的页面以打开另一个页面然后重定向以打开原始页面,则可能会出现这种情况。”
我应该在htaccess文件中添加任何更改吗?
这是我的website.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>
答案 0 :(得分:0)
我建议用Laravel Homestead预制盒子看看Vagrant。这将通过编辑Homestead.yaml文件,/ etc / hosts文件,然后配置vagrant机器来实现您想要的功能。您将需要安装虚拟盒以与vagrant一起使用。您可以通过在homestead目录中键入vagrant ssh来SSH进入计算机。
文档:https://laravel.com/docs/5.4/homestead
关于流浪汉的YouTube视频:https://www.youtube.com/watch?v=LyIyyFDgO4o
关于安装Laravel Homestead的Youtube视频:https://www.youtube.com/watch?v=tbPGuikTzKk&list=PLfdtiltiRHWEaImCreOC7UkK4U5Xv9LdI
答案 1 :(得分:0)
在Apache设置中,应使用 public 文件夹作为别名。
尝试“ / var / www / html / admin2 / 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文件,这可能需要一些额外的时间。
也请在进行更改后重新启动apache。t
答案 2 :(得分:0)
您需要正确设置2件事:
C:\wamp\alias
将URL重定向到Laravel文件夹中的public\index.php
.htaccess
文件夹中重写基本public
,以便Apache在基本路径的顶部进行重写。假设您的站点目录位于C:\wamp\www\site
中,而别名为localhost/alias
public
文件夹: Alias /site "/var/www/site/public"
<Directory "/var/www/site/public">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
RewriteBase
文件夹的.htaccess
中添加public
<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>