Apache vhost двойной слеш на перенаправлениях - PullRequest
0 голосов
/ 13 ноября 2018

Я пытался форсировать FQDN и HTTPS через перенаправления Apache Vhost в приложении Laravel за обратным прокси-сервером. Моя проблема сейчас в том, что пользователь иногда перенаправляется на URL с двойной косой чертой, например https://exampledomain.xy//test вместо https://exampledomain.xy/test и я не знаю почему.

Вот моя конфигурация apache vhost:

<VirtualHost *:80>
 ServerName localhost
 ServerAdmin webmaster@localhost
 DocumentRoot /var/www/html/public

 <Directory /var/www/html>
    AllowOverride All
 </Directory>

 ErrorLog /dev/stderr
 TransferLog /dev/stdout
 RewriteEngine on
 RewriteCond %{HTTP_HOST} !=localhost
 RewriteCond %{HTTP_HOST} !=127.0.0.1
 RewriteCond %{REMOTE_ADDR} !=127.0.0.1
 RewriteCond %{REMOTE_ADDR} !=::1
 RewriteRule (.*) https://exampledomain.xy/$1 [L,R=301]
</VirtualHost>
<VirtualHost *:80>
 ServerAdmin webmaster@localhost
 DocumentRoot "/var/www/html/public"
 ServerName exampledomain.xy
</VirtualHost>

И мой файл .htaccess (файл по умолчанию .htacces, который поставляется с Laravel)

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

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

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

1 Ответ

0 голосов
/ 15 ноября 2018

Хорошо, похоже, я исправил проблему. Я изменил следующее в моей конфигурации:

RewriteCond %{HTTPS} !on

RewriteRule ^(.*)$ https://stk-support.ukl.uni-freiburg.de$1 [R=301,L]

Из-за дополнительной косой черты в правиле перезаписи я также добавил условие перезаписи HTTPS.

...