2016-07-31 13 views
2

Wir haben eine vBulletin 5-Installation innerhalb eines SilverStripe-Stammverzeichnisses, geladen in einen Ordner namens Community. Die URL zu der Community-Indexdatei sollte daher lauten: www.e-lumini.com/community.vbulletin forum innerhalb von SilverStripe Root - URL-Fehlleitung

Die URL wird jedoch automatisch an ./?url=/community angehängt (erscheint vollständig als http://e-lumini.com/community/?) und leitet natürlich auf eine 404-Seite um.

Vermutlich ist dies ein .htaccess Inhaltsproblem.

Hier ist unsere aktuelle Silvers

### SILVERSTRIPE START ### 
# Deny access to templates (but allow from localhost) 
<Files *.ss> 
Order deny,allow 
Deny from all 
Allow from 127.0.0.1 
</Files> 

# Deny access to IIS configuration 
<Files web.config> 
Order deny,allow 
Deny from all 
</Files> 

# Deny access to YAML configuration files which might include sensitive  
information 
<Files *.yml> 
Order allow,deny 
Deny from all 
</Files> 

# Route errors to static pages automatically generated by SilverStripe 
ErrorDocument 404 /assets/error-404.html 
ErrorDocument 500 /assets/error-500.html 

<IfModule mod_rewrite.c> 
# Turn off index.php handling requests to the homepage fixes issue in apache =2.4 
<IfModule mod_dir.c> 
    DirectoryIndex disabled 
</IfModule> 

SetEnv HTTP_MOD_REWRITE On 
RewriteEngine On 
RewriteBase '/' 

# Deny access to potentially sensitive files and folders 
RewriteRule ^community - [L,NC] 
RewriteRule ^vendor(/|$) - [F,L,NC] 
RewriteRule silverstripe-cache(/|$) - [F,L,NC] 
RewriteRule composer\.(json|lock) - [F,L,NC] 

# Process through SilverStripe if no file with the requested name exists. 
# Pass through the original path as a query parameter, and retain the existing parameters. 
RewriteCond %{REQUEST_URI} ^(.*)$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .* framework/main.php?url=%1 [QSA] 
</IfModule> 
### SILVERSTRIPE END ### 

Notiere die Einbeziehung der Gemeinde Rewrite-Regel nur über Datei .htaccess, die nun in einem 403-Fehler zur Folge hat.

Wie beheben wir dieses falsche URL-Redirect-Problem?

+0

Ich glaube, Sie den Code schreiben vergessen. – RamenChef

Antwort

1

Wir können die main.phpRewriteRule zu überprüfen, ändern, dass die URL nicht mit /community beginnt, bevor die Anforderung an Silvers des Rahmen main.php Datei umgeleitet werden.

Um dies zu überprüfen wir RewriteCond %{REQUEST_URI} !/community unseren .htaccessRewriteRule wie folgt hinzu:

RewriteCond %{REQUEST_URI} ^(.*)$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !/community 
RewriteRule .* framework/main.php?url=%1 [QSA] 

Dies stoppt Silvers Umleitung Zugriff auf die community URL und alle Sub-URLs. Dadurch können wir jede andere Anwendung oder Code in dieses Verzeichnis einfügen.

Wir müssen auch die folgende Regel als diese Blöcke alle Zugriff auf die Community-URL entfernen:

RewriteRule ^community - [L,NC]