2016-09-18 2 views
0

Ich habe gerade festgestellt, dass einige meiner umgeschriebenen URLs nicht mehr funktionieren. Ich weiß nicht warum.URL zum Umschreiben scheinen falsch geschrieben zu sein

Hier ist meine Rewrite-Datei

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^forums/([^/]*)/locate/([^/]*)/$ /forums.php?page=$1&tlocate=$2 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^changelogs/([^/]*)/$ /index.php?page=$1 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^forums/$ /forums.php 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]*)/$ /forums.php?page=$1 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^forums/action/([^/]*)/$ /forums.php?page=$1 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^forums/([^/]*)/section/([^/]*)/$ /forums.php?page=$1&sectionid=$2 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^register/([^/]*)/$ /register.php?page=$1 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^account/([^/]*)/$ /account-page.php?page=$1 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^about-us/$ /about.php 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^forums/([^/]*)/topic/([^/]*)/$ /forums.php?page=$1&topic=$2 [L] 

ErrorDocument 400 /error.php 
ErrorDocument 401 /error.php 
ErrorDocument 403 /error.php 
ErrorDocument 404 /error.php 
ErrorDocument 500 /error.php 

Wenn ich www.localhost/account/ ging

Es würde mich nur

Also www.localhost/forums/ senden i heruntergeladen mozilla, um zu sehen, ob meine .htaccess aufgehört zu arbeiten. Das CSS hat dort nicht funktioniert. Ich habe dann auf eine Website ging mein Code zu überprüfen und sie beschwerten sich über die Linie

RewriteRule ^about-us/$ /about.php 

Auf dieser Linie habe ich versucht www.localhost/about.php in www.localhost/about-us/

ohne Erfolg neu zu schreiben. Was mache ich falsch, was dieses Problem verursacht?

Antwort

0

können Sie in Ihrem .htaccess verwenden:

# skip all files and directories from rewrite rules below 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule^- [L] 

RewriteRule ^forums/([^/]*)/locate/([^/]*)/$ /forums.php?page=$1&tlocate=$2 [L] 
RewriteRule ^changelogs/([^/]*)/$ /index.php?page=$1 [L] 
RewriteRule ^forums/$ /forums.php [L] 
RewriteRule ^forums/action/([^/]*)/$ /forums.php?page=$1 [L] 
RewriteRule ^forums/([^/]*)/section/([^/]*)/$ /forums.php?page=$1&sectionid=$2 [L] 
RewriteRule ^register/([^/]*)/$ /register.php?page=$1 [L] 
RewriteRule ^account/([^/]*)/$ /account-page.php?page=$1 [L] 
RewriteRule ^about-us/$ /about.php [L] 
RewriteRule ^forums/([^/]*)/topic/([^/]*)/$ /forums.php?page=$1&topic=$2 [L] 
RewriteRule ^([^/]*)/$ /forums.php?page=$1 [L] 

ErrorDocument 400 /error.php 
ErrorDocument 401 /error.php 
ErrorDocument 403 /error.php 
ErrorDocument 404 /error.php 
ErrorDocument 500 /error.php 

Und fügen Sie diesen Code in Ihren about.php HTML-Code:

<base href="/"> 

Da Sie die Wurzel ändern (für CSS und andere Verwandte) mit Ihrem about-us/ Verknüpfung.

+1

Du bist ein König, mein Freund, obwohl ich bereits ein Basetag hatte. Aber der Rest hat funktioniert – Synyster