2010-11-30 5 views
0

Was ich versuche zu erreichen, ist im Grunde verbergen die Tatsache, dass die Seite von einem Unterverzeichnis bedient wird.Ist es möglich, ein Unterverzeichnis nach dem Umschreiben von root in dieses Verzeichnis zu "verstecken"?

Im Moment habe ich die folgende .htaccess

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} !^/blog 
RewriteRule (.*) /blog/$1 

Das tut, was ich will. Es liefert Seiten von /blog, während er dem Benutzer den Eindruck vermittelt, sich im Stammverzeichnis zu befinden.

Wenn jedoch der Benutzer http://www.example.com/blog besucht, erhalten sie die gleiche Seite. Wenn es möglich wäre, würde ich sie gerne bekommen /blog/blog.

Der Hauptgrund, der mich beunruhigt, ist nicht wegen der wirklichen Benutzer, aber wegen der Roboter, die die Seite mit der falschen URL indexieren könnten.

Antwort

2

Dies ist möglich, aber Sie müssen ein wenig schummeln. Im Wesentlichen ändert sich THE_REQUEST niemals während des Neuschreibens, so dass Sie darauf testen können.

RewriteEngine On 
RewriteBase/
RewriteCond %{THE_REQUEST} /blog 
RewriteRule . - [F] 
RewriteCond %{REQUEST_URI} !^/blog 
RewriteRule (.*) /blog/$1 

http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritecond

Verwandte Themen