web-dev-qa-db-ja.com

wiki専用サイトの書き換えルールで/ wiki /ディレクトリを削除する方法

サイトのサブドメインを設定し(この質問の目的でwiki.example.comと呼びます)、そこにウィキをインストールし、MediaWikiのWebサイトの記事に従ってURL書き換えを設定しました( http://www.mediawiki.org/wiki/Manual:Short_URL/Apache )。

しかし、私のサブドメインはwiki専用であるため、URLをwiki.example.com/ArticleNameではなくwiki.example.com/wiki/ArticleNameの形式にすることを望んでいました。

私は正しいと思った方法で書き換えルールを変更してこれを試しました:

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

免責事項:私が書いた構文は、この質問に再入力することができなくなったため、まったく同じではなかったかもしれません。

wiki.example.com/Main_Pageのページに到達できたが、画像もCSSもロードされなかったため、これは部分的に機能しました。

URL書き換えルールはすべてをindex.phpに向けようとしているのではないかと疑っていますが、wiki.mysite.com/ArticleNameの形式でURLを取得する方法はないのでしょうか。

1
MrVimes

このタイプの問題を非表示にする方法は、。htaccessを使用することです。実際に非常にうまく機能します。

コードは私のウェブホストから来ており、動作するように修正するために若干の編集を行う必要がありますが、shouldも動作します。

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

基本的に、/wiki/フォルダーをURLから削除し、問題を修正する必要があります。

1
user37204