2017-01-15 14 views
1

私のドメイン名はですhttps: //example.com - 私は自分の.htaccessを使ってファイル拡張子をURLから削除していますhttps: //example.com/pages/file.phpがhttps: //example.com/pages/fileとして表示されていますが、正常に動作しています。ファイル名拡張子を削除し、.htaccessでwwwからnon-wwwにリダイレクト

私は今、重複した内容のいくつかの問題を抱えているとHTTPSをリダイレクトしたいと思います: //www.example.com/pages/file へのhttps: //example.com/pages/fileを。 //www.example.com:HTTPSアクセスすることにより、

ErrorDocument 404 /404.php 

RewriteEngine On 

RewriteCond %{HTTP_HOST} !^example\.com$ [NC] 
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
RewriteRule ^([^/]+)/$ $1.php [L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1/$2.php -f 
RewriteRule ^([^/]+)/([^/]+)/?$ /$1/$2.php [L] 

問題がある:私の現在の.htaccessは(それがルートディレクトリおよびサブディレクトリ/ページ一度 /に一度置か)、次のようになります。/pages/fileの場合、https: //example.com/fileにリダイレクトされていますので、/ pages/partは除外されています。これは、すべてのサブページがそのディレクトリに保存されるので非常に重要です。私はそれが重要かどうかわかりませんが、私もアクセス可能にする必要がある私のルートディレクトリにいくつかのheader.phpとfooter.phpファイルを持っています。ただ、これらの規則の下、トップへ

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1/$2.php -f 
RewriteRule ^([^/]+)/([^/]+)/?$ /$1/$2.php [L] 

答えて

1

すると、このルールを移動しよう

RewriteCond %{HTTP_HOST} !^example\.com$ [NC] 
RewriteRule ^(.*)$ https://example.com/$1 [R=301,L] 

これは "/ページ/" でURLが正しく

リダイレクトさせなければなりません
+0

あなたが言及したルールをより高い位置に移動した後も、(悲しいことに)まだ動作していませんでした。 https://example.com/pages/websiteにアクセスしようとすると、https://example.com/websiteにリダイレクトされました。 2つの.htaccessファイル(ルートに1つ、/ pages /ディレクトリに1つ)を持つことに問題があると思いますか?あなたの助けてくれてありがとう、@ Nadir Latif – Niclas

+0

@ Niclasページディレクトリから.htaccessファイルを削除して助けてもらうことができます。 –

関連する問題