2010-12-28 11 views
1

Ich habe eine Django-App, die auf einer Subdomain läuft, subdomain.domain.com/appname, aber ich möchte nicht, dass der App-Name in irgendeiner meiner URLs erscheint. Ich habe dies über .htaccessmod_rewrite mit .htaccess zum Unterspionieren des Unterverzeichnisses

RewriteEngine On 

RewriteCond %{REQUEST_URI} !admin 
RewriteCond %{REQUEST_URI} !appname 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /appname/$1 [L] 

erreicht Dieser accompishes den Fall, dass die angeforderte URL subdomain.domain.com/home ist, und es wird von subdomain.domain.com/appname/home serviert.

Allerdings möchte ich auch das Gegenteil erreichen, wo die angeforderte URL subdomain.domain.com/appname/home ist, und die angezeigte URL ändert sich in subdomain.domain.com/home, die dann die Regel auslöst oben und wird von subdomain.domain.com/appname/home serviert

habe ich versucht, die folgenden aber einen Fehler, die ich eine Schleife

RewriteEngine On 

RewriteCond %{REQUEST_URI} appname 
RewriteRule ^appname/(.*)$ /$1 [N,R=301] 

RewriteCond %{REQUEST_URI} !admin 
RewriteCond %{REQUEST_URI} !appname 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ /appname/$1 [L] 

Antwort

5

Versuchen ohne die ‚N‘ Flag haben:

'next|N' (next round)
Re-run the rewriting process (starting again with the first rewriting rule). This time, the URL to match is no longer the original URL, but rather the URL returned by the last rewriting rule. This corresponds to the Perl next command or the continue command in C. Use this flag to restart the rewriting process - to immediately go to the top of the loop.
Be careful not to create an infinite loop!

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

Verwandte Themen