2017-09-27 2 views
1

Je n'arrive pas à rediriger une URL codée en dur vers une jolie URL.Très basique htaccess joli URL

Je veux accéder à l'adresse suivante:

mysite.com/index.php?page=links 

En naviguant à:

mysite.com/links/ 

J'ai lu tout un tas d'autres questions à ce sujet, mais elles concernent toutes les données dynamiques être passé à travers l'url avec des ficelles. Je veux juste un simple RewriteRule htaccess qui n'affectera que cette URL spécifique et rien d'autre.

J'ai essayé une tonne de choses, mais rien ne fonctionne, 404 à chaque fois.

Exemple:

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

Toute aide appréciée.

EDIT - réagir à la réponse suggérée proposée. Ce n'est absolument pas ce que je cherche à faire. Je n'essaie PAS de rediriger une page vers une autre, je veux simplement réécrire l'URL dans le navigateur.

+0

Avez-vous confirmé que '.htaccess, et mod_rewrite' FollowSymLinks' sont activés? Avez-vous d'autres directives dans '.htaccess'? Tout autre fichier '.htaccess'? – MrWhite

+0

Copie possible de [htaccess Rediriger un fichier vers un autre] (https://stackoverflow.com/questions/23184738/htaccess-redirect-one-file-to-another) – neuromatter

+0

Bonjour, oui mod_rewrite et FollowSymLinks sont activés. Aucun autre fichier .htaccess. La seule autre directive est 'ErrorDocument 404 /index.php? Page = error & action = 404' qui fonctionne bien. – user3717922

Répondre

0

J'ai trouvé la solution. apache2.conf n'autorisait pas le remplacement, j'ai donc ajouté ce qui suit.

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

Est-ce sécuritaire?

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