1

Ich hoffe, einer von Ihnen kann helfen. Ich entwickle mit PHP, ohne ein Framework, daher sind alle meine Routing-Regeln in. Htaccess im Gegensatz zu. PHPTrail Schrägstrich verursacht 404 Fehler und unsachgemäße URL Verhalten: APACHE/PHP

Also hier ist mein Problem. Sagen Sie, meine Website ist http://example.com und meine Navigation ist ziemlich einfach, was bedeutet, wenn Sie auf den 'press' Link klicken, gehen Sie zu http://example.com/press oder http://example.com/press/, die beide in Ordnung sind.

Allerdings, wenn Sie zufällig gehen zu http://example.com/press/ klicken Sie einen anderen internen Link in meinem Nav, wie 'über' etc .. Ich werde Sie nicht zu '/ Beispiel', sondern '/ drücken/Beispiel' was zeigt a 404, da es keine Seite oder kein Verzeichnis gibt, um dies zu handhaben.

Ich habe 'DirectorySlash Off' in meiner .htaccess versucht, aber alles was getan wurde, war zu verhindern, dass irgendeine dieser Seiten angezeigt wird, wenn eine URL/am Ende hat.

Ich habe eine sehr einfache .htaccess Setup finden Sie unter:

<IfModule mod_rewrite.c> 

RewriteEngine On 
# Options -Indexes 
# GEN CONFIG 



# Handle Errors 
ErrorDocument 403 /views/errors/404.php 
ErrorDocument 404 /views/errors/404.php 
ErrorDocument 303 /views/errors/404.php 

# Url renamin 
RewriteRule ^(about-us|About-Us|ABOUT-US)/?$ views/about-us.php [L] 

RewriteRule ^(press|Press|PRESS)/?$ views/press.php [L] 
RewriteRule ^(faq|Faq|FAQ)/?$ views/faq.php [L] 

</IfModule> 

Antwort

1

ein weiterer interner Link in meinem nav zu http://example.com/press/ Klick gehen, wie about etc .. Ich werde Sie nicht zu /about aber /press/about eher

Dieses Problem ist nicht durch Regeln neu zu schreiben, aber aufgrund Ihrer Verwendung von relativen Pfaden.

Um dies zu beheben, können Sie dies nur unter <head> Abschnitt Ihrer Seite HTML hinzufügen:

<base href="/" /> 

so dass jede relative URL von dieser Basis-URL aufgelöst wird und nicht von der URL der aktuellen Seite.

+0

Obwohl ich das gleiche dachte und diese Methode früher ausprobierte, fügt es am Ende immer den nächsten Link zum abschließenden Schrägstrich an. – VickenCode

+0

Auch nur um meinen Punkt weiterzuführen, wenn Sie http://example.com/press/ aufrufen und auf einen anderen Link klicken, wird dieser einfach an das Ende des nachfolgenden Schrägstrichs angehängt. – VickenCode

+0

Ja, das ist das Verhalten, wenn Sie relative statt absolute Links verwenden. Absolute Pfade beginnen entweder mit 'http: //' oder einem Schrägstrich '/'. – anubhava

Verwandte Themen