2017-09-27 3 views
1

Ich habe Probleme, eine hart codierte URL zu einer hübschen URL umzuleiten.Sehr einfache htaccess hübsche URL

Ich mag die folgende URL zugreifen:

mysite.com/index.php?page=links 

Durch die Navigation zu:

mysite.com/links/ 

ich eine ganze Reihe von anderen Fragen zu diesem Thema gelesen habe, aber sie alle, um dynamische Daten beziehen durch die URL mit Strings übergeben werden. Ich möchte nur eine einfache htaccess RewriteRule, die nur diese spezifische URL und nichts anderes betrifft.

Ich habe eine Menge Zeug ausprobiert, aber nichts funktioniert, 404 ist jedes Mal.

Beispiel:

RewriteEngine On 
RewriteRule ^links/ index.php?page=links 

Jede Hilfe sehr geschätzt.

EDIT - Reaktion auf die vorgeschlagene Antwort angeboten. Das ist absolut NICHT, was ich tun möchte. Ich versuche NICHT, eine Seite zu einer anderen umzuleiten, ich möchte einfach die URL im Browser neu schreiben.

+0

haben bestätigt, dass '.htaccess', mod_rewrite und' FollowSymLinks' aktiviert sind? Haben Sie andere Anweisungen in '.htaccess'? Irgendwelche anderen '.htaccess' Dateien? – MrWhite

+0

Mögliches Duplikat von [htaccess Eine Datei an eine andere umleiten] (https://stackoverflow.com/questions/23184738/htaccess-redirect-one-file-to-another) – neuromatter

+0

Hi, ja mod_rewrite und FollowSymLinks sind aktiviert. Keine anderen .htaccess-Dateien. Nur eine andere Direktive ist 'ErrorDocument 404 /index.php? Page = error & action = 404' was gut funktioniert. – user3717922

Antwort

0

Ich fand die Lösung. apache2.conf erlaubte die Überschreibung nicht, also fügte ich folgendes hinzu.

<Directory /var/www/html/public/> 
    Options Indexes FollowSysmLinks 
    AllowOverride All 
    Require all granted 
</Directory> 

Ist das sicher?

0

index.php

<?php 

    define('BASE_URL', '/mysite.com/'); 

    if (isset($_GET['page'])) { 
    echo "query string ==> $_SERVER[QUERY_STRING]" . "<br />"; 
    } else { 
    echo "Not query 'page'" . "<br />";   
    } 

    echo "url ==> $_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]" . "<br />"; 

?> 

<a href="<?php echo BASE_URL; ?>">index</a><br/> 
<a href="<?php echo BASE_URL; ?>1">1</a><br/> 
<a href="<?php echo BASE_URL; ?>2">2</a><br/> 
<a href="index.php?page=3">3</a><br/> 

.htaccess

RewriteEngine On 

#RegEx pattern matching => query string 
RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1 
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?page=$1