0

リクエストがサブドメインの場合、自分のサイトが /user フォルダーを指すようにします。

リクエストが subdomain.site.com/admin の場合、サイトは subdomain.site.com/user/admin のページを表示する必要があります。

私のコードの問題は、URL アドレスを保持する代わりに 301 リダイレクトを行うことです。

私のコードは次のようになります。

<IfModule mod_rewrite.c>

DirectoryIndex index.php

RewriteEngine on
RewriteBase / 

RewriteCond %{HTTP_HOST} !^www.bildsida.se(.*)
RewriteCond %{HTTP_HOST} ^[^.]+.bildsida.se(.*)

RewriteRule ^$ user/$1 [QSA,L]

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

RewriteRule (.*) user/$1 [L]

</IfModule>

http://mickes.bildsida.se/adminにアクセスして、アドレスがどのように /user/admin に変わるかを確認してください。非常に邪魔です...

4

3 に答える 3

0

コードは次の行に簡略化できます: (代わりに試してください)

RewriteEngine on
RewriteCond %{HTTP_HOST} !^(www\.)?bildsida\.se [NC]
RewriteRule ^(.*)$ /user/$1 [QSA,L]
于 2012-11-30T16:29:22.537 に答える
0

ついに!昼夜を問わずフォーラムやドキュメントを読み、考えられるすべての方法をテストした後、動作するようになりました!

スローション:

<IfModule mod_rewrite.c>

    DirectoryIndex index.php

    RewriteEngine on
    RewriteBase /

    RewriteCond %{HTTP_HOST} !^www.bildsida.se
    RewriteCond %{HTTP_HOST} !^bildsida.se

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^$ user/index.php [L]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)? user/$1/ [QSA]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule /(.+)/ user/$1 [QSA]

</IfModule>
于 2012-12-01T10:54:22.147 に答える
0

これを機能させるには、示した行のいくつかが必要です。

RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} !^www.bildsida.se
RewriteCond %{HTTP_HOST} ^.+\.bildsida\.se

RewriteRule ^(.*)$ user/$1 [L]

HTTP_HOST チェックを調整しました。そのパラメーターはドメイン名のみを参照するため、末尾に (.*) は必要ありません。また、すべてをリダイレクトする必要があるため、ファイルが存在するかディレクトリであるかを確認するチェックを削除しました (たとえば、他のサブドメインからファイルにアクセスできるようにする理由はありません)。

于 2012-11-30T14:41:25.227 に答える