it-swarm.com.de

So entfernen Sie / wiki / directory in rewrite rule auf einer Site, die für ein Wiki reserviert ist

Ich habe eine Subdomain meiner Site eingerichtet (für diese Frage nenne ich sie wiki.example.com), dort ein Wiki installiert und das URL-Rewrite gemäß dem Artikel auf der MediaWiki-Website eingerichtet ( http://www.mediawiki.org/wiki/Manual:Short_URL/Apache ).

Aber da meine Subdomain ausschließlich dem Wiki gewidmet ist, hatte ich gehofft, dass ich meine URLs im Format wiki.example.com/ArticleName anstatt wiki.example.com/wiki/ArticleName haben könnte.

Ich habe es versucht, indem ich die Umschreiberegel so geändert habe, wie ich es für richtig hielt:

RewriteRule ^(/.*)$ %{DOCUMENT_ROOT}/index.php [L]

Haftungsausschluss: Möglicherweise war es nicht genau so, da die von mir geschriebene Syntax für mich nicht mehr verfügbar ist, um diese Frage erneut einzugeben.

Dies funktionierte teilweise, da ich die Seite unter wiki.example.com/Main_Page erreichen konnte, aber keines der Bilder oder CSS geladen hatte.

Ich vermute, dass die URL-Umschreiberegel versucht hat, alles auf index.php zu verweisen, aber ich frage mich, ob es eine Möglichkeit gibt, eine URL im Format wiki.mysite.com/ArticleName zu erhalten.

1
MrVimes

Die Art und Weise, wie ich diese Art von Problem verstecke, ist die Verwendung von . Htaccess, und es funktioniert tatsächlich sehr gut.

Der Code stammt von meinem Webhost, und Sie müssen einige geringfügige Änderungen vornehmen, um ihn zu reparieren, aber es funktioniert sollte auch für Sie.

# .htaccess main domain to subdirectory redirect
# Do not change this line.
RewriteEngine on
# Change example.com to be your main domain.
RewriteCond %{HTTP_Host} ^(www.)?example.com$
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteCond %{REQUEST_URI} !^/subdirectory/
# Don't change the following two lines.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Change 'subdirectory' to be the directory you will use for your main domain.
RewriteRule ^(.*)$ /subdirectory/$1
# Change example.com to be your main domain again.
# Change 'subdirectory' to be the directory you will use for your main domain
# followed by / then the main file for your site, index.php, index.html, etc.
RewriteCond %{HTTP_Host} ^(www.)?example.com$
RewriteRule ^(/)?$ subdirectory/index.html [L] 

Grundsätzlich wird der Ordner /wiki/ aus der URL entfernt und das Problem sollte behoben sein.

1
user37204