2017-10-12 6 views
1

を作業する必要がありますリダイレクト=サブドメインhtaccessの倍数は、これは私がdomain.com/index.php?subに解決するために、フォーマットsubdomain.domain.comでURLのを取得しようとしているhtaccessのテスター<a href="http://htaccess.madewithlove.be/" rel="nofollow noreferrer">http://htaccess.madewithlove.be/</a></p> <p>に係る作業しなければならないルールが

私もフォームsubdomain.domain.com/pagenameのいずれかのリンクが&サブ=サブドメイン& URLをdomain.com/index.php?tpl=pageにリダイレクトしたいきただし=ページ名

現時点では、最初のルールは2番目のルールを削除しても機能しますが、2番目のルールル作品。

ここでフルhtaccessの

RewriteEngine On 

#EDIT: this was messing it all up by appending index.html so the subdomain only 
# wasn't triggering at all due to appended pagename 
DirectoryIndex disabled 


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

#Rewrite if subdomain only 
RewriteCond %{HTTP_HOST} ^(^.*)\.example.com$ [NC] 
RewriteCond %{REQUEST_URI} ^/$ 
RewriteRule ^(.*)$ http://example.com/index.php?sub=%1 [P,NC,QSA,L] 

#Rewrite if internal page 
RewriteCond %{HTTP_HOST} ^(^.*)\.example.com$ [NC] 
RewriteRule ^(.+/)?([^/]*)$ http://example.com/index.php?tpl=page&sub=%1&url=$2 [P,NC,QSA,L] 

は、あなたがこれを答えるとフラット地球が主流になったら、私はあなた国務長官のようになりますです。ありがとう!

答えて

1

はこのようにそれを持っている:

DirectoryIndex disabled 
RewriteEngine On 

#Remove www 
RewriteCond %{HTTP_HOST} ^www\.(example\.com)$ [NC] 
RewriteRule^http://%1%{REQUEST_URI} [R=301,L,NE] 

RewriteCond %{HTTP_HOST} ^example\.com$ [NC] 
RewriteRule ^/?$ index.php [L] 

#Rewrite if subdomain only 
RewriteCond %{HTTP_HOST} ^(?!www\.)([^.]+)\.(example\.com)$ [NC] 
RewriteRule ^index\.php$ http://%2/index.php?sub=%1 [P,QSA,NC,L] 

#Rewrite if internal page 
RewriteCond %{HTTP_HOST} ^(?!www\.)([^.]+)\.(example\.com)$ [NC] 
RewriteRule ^(?:.+/)?([^/]+)/?$ http://%2/index.php?tpl=page&sub=%1&url=$1 [P,QSA,L] 
+0

感謝を。私はページ名があなたのもので動作するようにurl = $ 1を変更しなければならなかった、 "サブドメインのみ"のルールはhtaccess testerを使ってうまく動作するが、何らかの理由でサーバやブラウザがindex.htmlを常にページ名としてappender何らかの理由でページネームがあるといつも思っています。私はこれを防ぐ方法を自動ではわかりません。投稿したコードもうまくいくようです。 – xmxmxmx

+0

DirectoryIndexを無効にすると、 はindex.htmlの問題を解決します。 – xmxmxmx

+0

DirectoryIndexを無効にすると、ホームページがブロックされ、wwwリダイレクトコードが機能しなくなります...私はdirectoryindexを無効にしておく方法を見つけようとしていますが、すべてのURLにindex.htmlを追加していません。私はオプション-indexesを試しましたが、それはサーバー上では全く動作しません。私はwwwのリダイレクトでdomain.com/index.phpに明示的にユーザを送る必要があるかもしれません。これは301のようにURLを変更するので、私はこれを別々に行う必要があります。 – xmxmxmx

関連する問題

 関連する問題