2

過去数時間解決策を探していたので、ここで質問したいと思いました。

次のようなリンクを処理する方法を探しています。

http://subdomain.domain.com/page/subpage/

したがって、それらは次のようにサーバーに渡されます。

http://domain.com/index.php?subdomain=サブドメイン&ページ=ページ&サブページ=サブページ

これは正しいページ情報を表示するために index.php で取得できます。

ページとサブページを機能させることはできますが、サブドメインを取得する方法がわかりません。注: サブドメインがない場合は、そのフィールドを空白のままにするか、デフォルト値を含めたいと思います。

どんな援助でも大歓迎です。:)

編集:
明確にするために、最初の URL をユーザーが表示してアドレスバーに入力できるようにし、2 番目の URL を、ユーザーが最初の URL に移動したときにサーバーによって読み込まれるページにする必要があります。

私の .htaccess ファイル

Options +FollowSymlinks -MultiViews -Indexes

RewriteEngine On
RewriteBase /

# Remove 'www'
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

# Add slashes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !index.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://resolutiongaming.com/$1/ [L,R=301]

# Subdomain redirect
RewriteCond %{HTTP_HOST} ^resolutiongaming.com$
RewriteRule ^webdev/$ http://webdev.resolutiongaming.com [R=301,L]
RewriteRule ^artwork/$ http://artwork.resolutiongaming.com [R=301,L]
RewriteRule ^music/$ http://music.resolutiongaming.com [R=301,L]

ErrorDocument 404 /error.php
4

1 に答える 1

2

ルートディレクトリの1つの.htaccesファイルでこれを試すことができます。

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST}  ^(?:www\.)?([^\.]+)\.domain\.com
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  ^/([^/]+)/([^/]+)/?   [NC]
RewriteRule .*     http://domain.com/index.php?subdomain=%1&page=%2&subpage=%3  [R=301,L]

永続的にリダイレクトされます:

http://subdomain.domain.com/page/subpage/またhttp://www.subdomain.domain.com/page/subpage/

に:

http://domain.com/index.php?subdomain=subdomain&page=page&subpage=subpage

ルールが機能するためには、着信URLスキーム:/page/subpage/を保持する必要があります。

永続的なリダイレクトをサイレントマッピングに置き換えるにはR=301、[R = 301、L]から削除するかR、一時的なリダイレクトに置き換えます。

于 2013-01-28T11:20:27.863 に答える