mod_rewrite funktioniert nicht.

Alles, was PHP betrifft, kann hier besprochen werden.

mod_rewrite funktioniert nicht.

Postby smyle » 23. November 2011 10:31

Hallo ich generiere mit PHP links die so aussehen können:
Index.php?news=news oder Index.php?news usw…

Habe gelesen das man die ? durch / ersetzen kann.
Dafür müsste man die Datei .htaccess erstellen und folgendes eingeben:
Code: Select all
RewriteEngine On
RewriteRule ^([^/]*)\.html$ /projekt1/management/index.php?news=$1 [L]


Dieser Code gibt mir zwar keine Fehlermeldung aus, aber funktionieren tut er auch nicht.
Da ich nicht weiss wie man im .htaccess codieren muss, habe ich mir den Code auf der Homepage http://www.generateit.net/mod-rewrite/ generieren lassen.

Da dieser Code nicht funktioniert hat, habe ich weitere Generators gesucht und mir den Code wieder generieren lassen. Hier sind die restlichen Codes-Beispiele:
Code: Select all
#Options +FollowSymLinks
#RewriteEngine on
#RewriteRule Projekt(.*)\.htm$ /projekt1/management/index.php?news=$1
 
#Options +FollowSymLinks
#RewriteEngine on
#RewriteRule index/(.*)/(.*)/$ /projekt1/management/index.php?$1=$2
 
 
#Options +FollowSymLinks
#RewriteEngine on
#RewriteRule http://localhost/index/(.*)/(.*)/$ /projekt1/management/index.php?$1=$2


Natürlich hatte ich zum Testen die # entfernt.


Im moment is mein PHP so das ich herauslese ob index.php?news nicht leer ist.
Wenn dies nicht leer ist dann includet er eine andere Datei. Das heisst, im Haupt Bereich werden die, in diesem Fall, News angezeigt.

Was ich aber zukünftig machen möchte ist zu überprüfen ob index.php?news=news ist. Daher die beiden Varianten.

Hier mein PHP Code:
Code: Select all
                if(isset($_GET['account']))
                {     
                  echo "<div style='margin:10px;'>";             
                    $x = 0;
                    if(isset($_POST['img']))
                    {
                     $x++;
                     include 'account/upload.php';
                     //include 'account/upload2.php';
                    }
                    else
                    {
                     include'account/index.php';
                    }
                  echo"</div>";         
                }                 
                else if(isset($_GET['news']))
                {
                 include'news/index.php';
                }
                else
                {
                 echo "<div style='margin:10px;'>";
                 include'home/index.php';
                 echo "</div>";
                }


Ich denke das nachdem die Seite index.php?news=news als localhost/news angezeigt wird, funktioniert die Abfrage immer noch, oder?:
Code: Select all
if(isset($_GET['news']) && ($_GET['news'] == “news”)



Ist indem fall der htaccess Code falsch?

Ich möchte mod_rewrite gebrauchen da das dann im Browser schöner aussieht und für die Suchmaschinen auch besser ist. Also so wurde mir das jedenfalls erklärt.

Liegt das an der Xampp Version?
Ich sollte die neuste Version haben, da ich Xampp vor kurzem heruntergeladen und installiert habe.
Der Control Panel wäre die Version 2.5.

Weis jemand was ich falsch mache?
Denn kein htaccess Code ergibt einen Fehler aber funktionieren tun sie trotzdem nicht.

Übrigens habe ich mal in meiner htaccess den folgenden Code eingegeben und es hat funktioniert:
Code: Select all
RewriteEngine on
RewriteRule ^(.*)$ http://www.google.com [R]


Nur die oberen Codes funktionieren nicht :(

Kann mir da jemand helfen?

Ich bedanke mich im Voraus für eure Hilfe

Gruss
Smyle
smyle
 
Posts: 11
Joined: 22. March 2010 11:08

Re: mod_rewrite funktioniert nicht.

Postby smyle » 01. December 2011 20:38

Ist niemand da der mir weiterhelfen kann? :(

Ich habe mal das ganze nach dieser Anleitung gemacht: http://www.workingwith.me.uk/articles/scripting/mod_rewrite
Der erste Bereich mit alice.html und bob.html hat funktioniert. Der Rest leider nicht :(

Ich brauche dringend eure Hilfe... Bitteeeeeeeee
smyle
 
Posts: 11
Joined: 22. March 2010 11:08

Re: mod_rewrite funktioniert nicht.

Postby smyle » 01. December 2011 21:18

Ich habe noch disen Tutorial angeschaut: http://edrackham.com/apache/beginners-m ... -tutorial/

Habe nun folgende php Datei:
Code: Select all
<a href="product.php?product_id=19">text</a>
<a href="product/25/">text2</a>
<a href="product/18/">text2</a>
<a href="product/news/">text3</a>

You are viewing product <?php echo $_REQUEST['product_id']; echo"<br>".$_GET['product_id']; ?> 


Wenn ich den ersten Link wähle bleibt der Link im Browser so: http://localhost/projekte/test/product. ... duct_id=19
Wenn ich den zweiten Link wähle, sihet dier Link im Browser so aus: http://localhost/projekte/test/product/25/
Wenn ich, nachdem ich den zweiten Link gewählt habe denn dritten wähle funktioniert das lieder nicht, da der Link so aussieht: http://localhost/projekte/test/product/25/product/18/

Beim wählen des dritten Links sollte der zweite eigentlich überschrieben werden und nicht erweitert.
Wie funktioniert das?

Im htaccess sieht der Code so aus:
Code: Select all
    Options +FollowSymLinks 
    Options +Indexes 
    RewriteEngine On
RewriteRule ^product/([0-9]+)/$ product.php?product_id=$1 [NC,L] 
smyle
 
Posts: 11
Joined: 22. March 2010 11:08


Return to PHP

Who is online

Users browsing this forum: No registered users and 4 guests