2017-03-29 6 views
0

私は以下を試しています。.htaccess in subdirectory - RewriteBaseの使い方

私はIPアドレスで、当社のネットワークで利用可能で、このディレクトリ構造を、持っているが、私のDIR1-フォルダに今

root 
    -dir1 
    -dir2 
    -dir3 

をXXX.XXX.XXX.XXX、私は次の.htaccessを使用するサイトを持っています私のサイトで

RewriteEngine On 
RewriteBase /dir1/ 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*)$ /index.php?path=$1 [NC,L,QSA] 

ファイル、私は、「/詳細」または「/css/app.css」

問題があるように「/」の前でソースとページをリンクしていますそのリンクは常にルートfに行きます前の "/"のために古い。

すべてのリンクとソースを編集しなくても、リンクをサブディレクトリに「滞在」させるにはどうすればよいですか?私は

RewriteBase/
RewriteBase /dir1 
RewriteBase /dir1/ 
RewriteBase dir1 

すべてのヘルプを使用しようとしました

は大歓迎です。ありがとう!

+0

などの削除先頭のスラッシュ:(。*) 'のRewriteRule^$ index.phpのパス= $ 1? [NC、L、QSA] ' – anubhava

+0

ありがとうございました@anubhava、でもそれはうまくいきませんでした... :( – chaensel

+0

ここには表示されていない他のルール/設定がない限り動作しません。 – anubhava

答えて

0

RewriteBaseは、相対パスターゲットにのみ適用されるため、何も変更されません。

でRewriteBaseディレクティブはディレクトリ単位(のhtaccess)のRewriteRuleディレクティブに使用するURLプレフィックスを指定する代替相対パス

ターゲットがすでに絶対/index.phpであるため、RewriteBaseを完全に省略することができます。


与えられた.htaccessから、index.phpが要求されたファイルを返すようです。この場合、パスの先頭に適切なディレクトリを付けます。

RewriteRule ^(.*)$ /index.php?path=/dir1/$1 [NC,L,QSA] 

または多分これは、スクリプトを使用して、より良い動作するかどうか、追加の引数を与え、ターゲットから

RewriteRule ^(.*)$ /index.php?path=$1&subdir=dir1 [NC,L,QSA] 
関連する問題