Hi

Ik heb 2 webpaginas die omzeggens identiek zijn.
Nu zou ik willen dat alle aanroepen van alle bestanden inclusief submappen doorgesluisd worden naar de andere pagina. De data kan ik daar opvangen via PHP. De tabel structuren zijn dezelfde.

Hier is mijn huidige .htaccess bestand

ErrorDocument 401 /fouten/fout401.html
ErrorDocument 403 /fouten/fout403.html
ErrorDocument 404 /fouten/fout404.html

Header add "disablevcache" "true"

RewriteEngine On

RewriteBase /
RewriteRule ^/redirect/van/(.*)$ /redirect/naar/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^domain.be
RewriteRule (.*) http://www.domain.be/$1 [R=301,L]

RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

De lijnen 9-10 heb ik toegevoegd maar er wordt niets doorgegeven.

Ik heb eigenlijk totaal geen ervaring net .htaccess. Ik zoek maar iets op internet en pas het aan.

lijn 5 komt van de provider.

Jan
Kan je niet dit doen?

Redirect 301 /redirect/van    /redirect/naar


Blijkbaar niet. Ik heb wel geprobeerd.

Let wel. Het adres in de adresbar mag niet wijzigen.
Dit is vaak een kwestie van e.e.a. testen.

Wijzig dit:

RewriteRule ^/redirect/van/(.*)$ /redirect/naar/$1 [R=301,L]

eens in:

RewriteRule ^redirect/van/(.*)$ https://www/domain.be/$1 [R=301,L]
Je probeert nu een redirect te combineren met een rewrite rule. Dat werkt nooit zo. Probeer die twee uit elkaar te houden, want de technologie is wezenlijk anders.

Redirect: server geeft cliënt een 30x HTTP-respons waarna de cliënt de nieuwe URL opvraagt.

Rewrite rule: server herschrijft client request onzichtbaar naar een ander request, zodat een andere service op de server het request kan afhandelen.
Jan R op 05/08/2021 18:29:26

Nee Ozzie werkt ook niet.

Ik zie dat er een foutje in mijn code stond. Nogmaals:


RewriteRule ^redirect/van/(.*)$ https://www.domain.be/$1 [R=301,L]


Als het niet werkt, haal dan eens die RewriteBase weg.

Als het niet werkt, wat werkt er dan niet? "Werkt niet" is een beetje nogal vaag.
@ozzie
beide geprobeerd. Lukt niet. Even vaag maar hoe moet ik het anders schrijven. Er wordt niets doorgesluisd.
@ward.
In mijn oorspronkelijk bericht schreef ik dan ook. Ik heb er geen verstand van :)
Hoe moet het dan wel?

Algemeen opnieuw proberen uitleggen wat ik wil
Ik heb 2 clubs met hun competitieresultaten
Nu wil ik dat welk bestand/pagina ik ook opvraag deze automatisch doorsluisd naar de andere map zodat ik niet steeds op 2 plaatsen moet vernieuwen of aanmaken en include gebruiken
De bestanden zijn dus dezelfde of verwijzen via include naar het andere momenteel maar dat is omslachtig.

Ik wil dus als ik vraag naar www.clubresultaten.be/club2/index.php alles intern maar niet op de adresbar hij www.clubresultaten.be/club1/index.php gaat lezen en uitvoeren.
In mijn php bestand kijk ik dan welke club het is en dan gebruik ik een prefix voor de tabellen.

Deze werkwijze zou volgens mij ook moeten werken met 3, 4 of zelfs met 100 clubs :) enige probleem. Ik krijg het niet werkende.

Jan
Vanwaar gebruik je genummerde directories, en vermoedelijk ook dubbele code?
Toch even benieuwd.

DRY:
Don't
Repeat
Yourself
Je zou de url kunnen ontleden en zien welke club van toepassing is.

 <?php
$url = 'http://www.clubresultaten.be/club2/index.php';
$parse = parse_url($url);
echo '<pre>' . print_r( $parse, TRUE ) . '</pre>';

$path = explode( '/', $parse['path'] );
echo '<pre>' . print_r( $path, TRUE ) . '<pre>';
echo '<pre>' . $path[1] . '</pre>';
?>

<?php
$url = 'http://www.clubresultaten.be/club1';
$parse = parse_url($url);
echo '<pre>' . print_r( $parse, TRUE ) . '</pre>';

$path = explode( '/', $parse['path'] );
echo '<pre>' . print_r( $path, TRUE ) . '<pre>';
echo '<pre>' . $path[1] . '</pre>';
?>

<?php
$url = 'http://www.clubresultaten.be';
$parse = parse_url($url);
echo '<pre>' . print_r( $parse, TRUE ) . '</pre>';

$path = explode( '/', $parse['path'] );
echo '<pre>' . print_r( $path, TRUE ) . '<pre>';
echo '<pre>' . $path[1] . '</pre>';
?>


https://www.php.net/manual/en/function.parse-url.php
- Ariën - op 06/08/2021 09:28:28

Vanwaar gebruik je genummerde directories, en vermoedelijk ook dubbele code?
Toch even benieuwd.


Ik moet toch met iets testen :)
in de productie zullen het clubnamen zijn

Adoptive Solution op 06/08/2021 10:27:48

Je zou de url kunnen ontleden en zien welke club van toepassing is.

Dat is wat ik probeer te verwezenlijken. maar eerst moet het doorverbonden worden of wat de term ook is.

Nu doe ik alles met de bestanden voor de 2° club heraanmaken met als inhoud
<?php
	include $_SERVER['DOCUMENT_ROOT'] . '/incl/includes.php';

    include '../club_1/' . basename($_SERVER['SCRIPT_NAME']);
?>

Maar ik zou het automatisch willen laten linken via welke methode dan ook.


In php heb in een include file met
<?
$website = $_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'] . '?' . $_SERVER['QUERY_STRING'];
switch (true) {
case (
strpos($website, '/sc_post-gent/')!==false
):
define('TRNPREFIX', 'trn_');
define('clubNaam', 'Schaakclub Post-Gent 1945');
define('SPEELDAG', 2);
define('MENU', 'menu_post.php');
break;
case (
strpos($website, '/sc_de_witte_kaproen/')!==false
):
define('TRNPREFIX', 'tr2_');
define('clubNaam', 'Schaakclub De witte kaproen');
define('MENU', 'menu_wk.php');
define('SPEELDAG', 4);
break;
}
?>

Reageren