web-dev-qa-db-fra.com

Comment éliminer / wiki / directory dans la règle de réécriture sur un site dédié à un wiki

J'ai créé un sous-domaine de mon site (pour les besoins de cette question, je l'appellerai wiki.example.com), installé un wiki à cet endroit et configuré la réécriture d'URL conformément à l'article sur le site Web de MediaWiki ( http://www.mediawiki.org/wiki/Manual:Short_URL/Apache ).

Mais comme mon sous-domaine est purement dédié au wiki, j'espérais pouvoir avoir mes URL au format wiki.example.com/ArticleName plutôt que wiki.example.com/wiki/ArticleName.

J'ai essayé ceci en modifiant la règle de réécriture d'une manière qui me semblait correcte:

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

Déni de responsabilité: ce n'était peut-être pas exactement comme cela, car la syntaxe que j'avais écrite n'est plus disponible pour que je puisse retaper cette question.

Cela fonctionnait partiellement, car je pouvais accéder à la page wiki.example.com/Main_Page, mais aucune des images ou CSS ne s’était chargée.

Je soupçonne que la règle de réécriture d'URL essayait de tout diriger vers index.php, mais je me demande s'il existe un moyen d'obtenir une URL au format wiki.mysite.com/ArticleName?

1
MrVimes

La façon dont je cache ce type de problème consiste à utiliser . Htaccess, et cela fonctionne réellement très bien.

Le code provient de mon hébergeur, et vous devez faire quelques modifications pour le réparer, mais cela devrait fonctionne également pour vous.

# .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] 

Fondamentalement, le dossier /wiki/ sera supprimé de l'URL et il devrait résoudre votre problème.

1
user37204