2016-11-13 15 views
0

私はpublic_html/www /に格納されているこのウェブサイトを持っています。他のドメインは、たとえばpublic_html/test /に格納されています。 public_htmlには、/www /フォルダ内のこのWebサイトにすべて適用される、多くのリダイレクトを含む.htaccessファイルがあります。/www /フォルダの中に私は別の.htaccessを持っています(なぜ、私の同僚はこれを行い、情報なしでこれを私に残しました)。 .htaccessがどのように動作するのかわからないので、何をすべきか、どのファイルにするのか分かりません。.htaccessサブフォルダにリダイレクト、wwwとwwwとwwwとhttps以外

私がする必要があるのは、domain.nlをhttps://www.domain.nlにリダイレクトすることです(emailtemplates、paymentupdate、autocode、nieuwsbrievenなどのコードでは、いくつかのフォルダを除外する必要があります)。しかし、domain.nlが保存されていますpublic_html/www/folderの内部にあるので、サブフォルダへのリダイレクトも必要です(ウェブブラウザには表示しないでください)。ルートの.htaccessファイルで、この時点では

は、以下の通りです:

# Use HTTPS 
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.nl [NC] 
RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} !^/emailtemplates 
RewriteCond %{REQUEST_URI} !^/paymentupdate_ideal 
RewriteCond %{REQUEST_URI} !^/autocode 
RewriteCond %{REQUEST_URI} !^/nieuwsbrieven 
RewriteCond %{REQUEST_URI} !^/bevestig-aanmelding-nieuwsbrief 
RewriteCond %{REQUEST_URI} !^/bevestig-afspraak 
RewriteCond %{REQUEST_URI} !^/images/personal 
RewriteCond %{REQUEST_URI} !^/uploadify 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

# Link to subfolder 
# RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www.)?www.domain.nl$ 
RewriteCond %{REQUEST_URI} !^/www/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /www/$1 
RewriteCond %{HTTP_HOST} ^(www.)?www.domain.nl$ 
RewriteRule ^(/)?$ www/index.php?page=home [L] 

# Non-www to www 
#activate rewrite engine 
#RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www.)?domain.nl 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] 

おそらく、このコードの半分にも必要ではないが、私は絶対に見当もつかない。他の.htaccessファイルは、サブフォルダ/ www /以下の中、私は本当に(それはより多くのが含まれていますが、何も関連する)理解していない次のテキストがあります。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ http://www.domain.nl/$1/ [L,R=301] 

私は愚かに聞こえる場合はごめんなさい。私はインターネットからコピーされた多くのものを試しましたが、残念ながらすべてがその幻想を持っており、私たちのウェブサイトには他の問題が生じています。私は、それがサブフォルダに格納されているので、すべての時間が動作しない理由は、それが動作するように1つのすべての行を組み合わせる方法を知らないと思う。

誰でも私がこれを修正する方法を説明するのを手伝ってください。ウェブサイトが現在wwwにリダイレクトされていないためです。 SSLをwwwに保存しているため、この時点でセキュリティエラーが発生するのはhttpsにリダイレクトされているだけです。 SUPERは事前に感謝します!

+0

最初の2つの手順は、まず次のようにする必要があります。1.あなたの同僚を取得し、適切なドキュメントを尋ねます。せずに仕事を離れることは、非常に専門的ではありません。そして、いいえ、そのようなことには有効な言い訳はありません。 2. apacheと '.htacess'スタイルファイルに関する小さなチュートリアルを読んで、使いたいツールを使う方法を学んでください。 – arkascha

+0

ありがとう、もちろん私はチュートリアルを読むべきです(そして私もやります!)しかし、それは1日以内に問題を解決しません。私の同僚は実際に私の元同僚です。彼は私が試したどんな連絡にも反応しません。残念ながら、それはオプションではありません。それで私はこれを自分で修正しなければならないのです。私は(そしてどちらも)知識があります。ごめんなさい。 – Claudia

答えて

0

私の問題はチェックの順序が間違っていました。まず、https://にリダイレクトしましたが、www。を使用しなかった場合、https://wwwにリダイレクトされなかったか、https://www.wwwにリダイレクトされました。

# Non-www to www 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L] 

# Permanent redirect to https:// 
RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} !^/excluded_folder1/ 
RewriteCond %{REQUEST_URI} !^/excluded_folder2/ 
RewriteCond %{REQUEST_URI} !^/excluded_folder3/ 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

# Use subfolder for domain 
RewriteCond %{HTTP_HOST} ^(www.)?www.domain.nl$ 
RewriteCond %{REQUEST_URI} !^/www/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /www/$1 
RewriteCond %{HTTP_HOST} ^(www.)?www.domain.nl$ 
RewriteRule ^(/)?$ www/index.php?page=home [L] 
関連する問題