2017-12-21, 00:09
  #1
Medlem
SKetchers avatar
Hej,
har en hemsida online med konfigurationen att tvinga allting in i en index.php som sedan skickar vidare requesten till en controller som servar rätt sub-sida.
Ubuntu:14.04 och apache2. Backend är PHP


Har följande i en .htaccess vilket fungerar utan problem;
Citat:
Hemsida.se/.htaccess
AcceptPathInfo On
Options +MultiViews
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)$ /index.php?path=$1 [NC,L,QSA]


Men när jag sätter upp följande reglerer med 'let's encrypt' för att få till det gröna hänglåset;
Citat:
Hemsida.se.conf
<VirtualHost *:80>

ServerName hemsida.se
ServerAdmin webmaster@hemsida.se
ServerAlias hemsida.se
DocumentRoot /var/www/html/basic
ErrorLog /var/www/html/error.log
CustomLog /var/www/html/access.log combined

RewriteEngine on
RewriteCond %{SERVER_NAME} =hemsida.se [OR]
##RewriteCond %{SERVER_NAME} =w [OR]
RewriteCond %{SERVER_NAME} =www.hemsida.se
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
..fungerar det inte utan istället för att gå till 'index.php?path=subsida', så försöker den nå 'subsida' direkt.

Hur skriver jag till reglerna så att det kombineras?
Citera
2017-12-21, 06:36
  #2
Medlem
distanss avatar
Citat:
Ursprungligen postat av SKetcher
Hej,
har en hemsida online med konfigurationen att tvinga allting in i en index.php som sedan skickar vidare requesten till en controller som servar rätt sub-sida.
Ubuntu:14.04 och apache2. Backend är PHP

Men när jag sätter upp följande reglerer med 'let's encrypt' för att få till det gröna hänglåset;

..fungerar det inte utan istället för att gå till 'index.php?path=subsida', så försöker den nå 'subsida' direkt.

Hur skriver jag till reglerna så att det kombineras?

Det är ju helt olika RewriteCond och RewriteRule i htaccess-filen och din vhost! Sen blir det nog lite extra kluddigt om vilka regler som har företräde om du även använder htaccess.
Citera
2017-12-21, 22:00
  #3
Medlem
SKetchers avatar
Citat:
Ursprungligen postat av distans
Det är ju helt olika RewriteCond och RewriteRule i htaccess-filen och din vhost! Sen blir det nog lite extra kluddigt om vilka regler som har företräde om du även använder htaccess.

Yes. Allt i .htaccess slutade fungera när jag lade in HTTPS-reglerna.

Är ute efter en regel som tvingas alla URLer till https och samtidigt in i en index.php med en adress-variabel.
Citera
2017-12-22, 23:39
  #4
Medlem
distanss avatar
Citat:
Ursprungligen postat av SKetcher
Yes. Allt i .htaccess slutade fungera när jag lade in HTTPS-reglerna.

Är ute efter en regel som tvingas alla URLer till https och samtidigt in i en index.php med en adress-variabel.

Tror du måste skapa reglerna i en egen <VirtualHost :443>? Typ:

Kod:
<VirtualHost *:80>
   ServerName www.example.com
   Redirect / https://secure.example.com/
</VirtualHost>

<VirtualHost _default_:443>
   ServerName secure.example.com
   DocumentRoot /usr/local/apache2/htdocs
   SSLEngine On

# samma regler som i htaccess:
  RewriteEngine On 
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d 
  RewriteRule (.*)$ /index.php?path=$1 [NC,L,QSA]
</VirtualHost>

https://wiki.apache.org/httpd/RedirectSSL
Citera
2017-12-24, 12:10
  #5
Medlem
SKetchers avatar
Citat:
Ursprungligen postat av distans
-

Yes precis, tack. Löste det för några dagar sedan på samma sätt.
*:80conf ska bara ha en redirect till *:443 där allt händer. Gjorde också om .htaccess till en <directory>
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in