2017-05-30 12 views
0

私は、下記URLたい: http://example.com/subdir/ が転送されている(実際には「example.com」が指しているウェブサーバ、には「サブディレクトリ」ディレクトリが存在しない):PHPでフルURLを転送するには?

https://www.example.com/subdir/ 

これは、内のコードです

<?php 
if (strpos($_SERVER['HTTP_HOST'], "example.com") !== FALSE) { 
    Header ("HTTP/1.1 301 Moved Permanently"); 
    Header ("Location: https://www.example.com".$_SERVER['REQUEST_URI']); 
} 
exit; 
?> 

問題:index.phpの「example.com」が指しているディレクトリ内のファイルブラウザでは、「要求されたURL /サブディレクトリは/このサーバー上に見つかりませんでした。」と言います(上記のとおりです)

'http://example.com/subdir/'をどのように置き換えることができますか?'https://www.example.com/subdir/'

+0

使用してください。どのWebサーバーを使用していますか? Apache? – deceze

+0

'subdir'を作成し、そこに' index.php'ファイルを置くか、あなたのWebサーバーからこれを制御してください。これはルート索引では実行できません。 –

+0

nginxの書き換えルールは、https://www.nginx.com/blog/creating-nginx-rewrite-rules/またはApacheの書き換えルールを使用できます:http://httpd.apache.org/docs/2.0/misc/rewriteguide .htmlはご使用の環境に依存します。 – Xatenev

答えて

0

これは、Webサーバーではなく、PHPのための仕事であるあなたのhtaccessの

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 
+0

.htaccessを推奨したり、使用したりしないでください。あなたのVirtualHostにこのようなものを含めることは、パフォーマンス上の理由から常に優先されるべきです。このトピックの詳細については、https://stackoverflow.com/questions/25063677/how-much-does-using-htaccess-files-slow-down-website-performance-especially-witを参照してください。 – Xatenev

+1

原因の@Xatenevですが、あなたがvHostにアクセスできる場合にのみ、最も一般的なホスティングプロバイダはあなたにこのファイルにアクセスさせません。 – CodeBrauer

+0

@ CodeBrauer私は、犯人にアクセスできない人は聞いたことがありません。共有ホスティング環境でもそうすることができます。どのような '一般的なホスティングプロバイダ'とはどういう意味ですか?プロバイダが仮想ホスト構成に小さなルールを追加できない場合でも、私は実際には別のプロバイダに切り替えることをお勧めします。 – Xatenev

関連する問題