2016-11-19 23 views
0

私はルートディレクトリにあるhtaccessの2つのことを達成しようとしています。私はApache 2.4を使用しています。htaccess .php拡張子を削除してwwwに書き換えます

1)))この部分は、現在取り組んでいる(WWWに

2を非WWWを書き換えURLから拡張子を.phpの削除

は、#2のために私はこのことについて二つのスレッドを見つけたが、それを実装しようとしたときに#1のコードでは決して動作しないようです。ここで

Remove .php extension with .htaccess

How to hide the .html extension with Apache mod_rewrite

私のコードで、最初の部分が正常に動作しますが、第二部は「.phpのは、」まだ、すべてのURLの上に表示さとして私のために何もしていないようです。

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^$ 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L] 

私もこのスレッドを見て、まだ動作していない、次の試してみました。

5 .htaccess Rewrites: Force HTTPS, Remove index.php, Remove .php, Force www, Force Trailing Slash

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)\.(?!js|css)([^.]*)$ $1\.php 

RewriteCond %{HTTP_HOST} !^$ 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

任意の助けいただければ幸いです。前もって感謝します。ここ

を更新し

は、フォルダ構造とここでPHPコードが存在しています。ほとんどのPHPファイルはルートフォルダにありますが、PHPコードを含む2つの追加フォルダがあります。

を使用でき
/ 
index.php 
file1.php 
file2.php 
file3.php 
file4.php 
folder1/file5.php 
folder1/file6.php 
folder2/file7.php 
folder2/file8.php 
+0

PHPコードですか? –

+0

@Hallur私はPHPファイルの場所を含むように投稿を更新しました。 – Matt

+0

質問は修辞的だった...あなたのポストに "php"タグを追加しましたが、あなたの質問はphpとは関係ありません...それはhtaccessについてです。つまり、関係のないタグは使用しないでください。 –

答えて

1

RewriteEngine On 
Options -MultiViews 

# Redirect to http(s)://www 
RewriteCond %{HTTP_HOST} !^$ 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

# remove php 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1 [R=301,L] 

# Rewrite to php 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
RewriteRule ^(.+)/?$ /$1.php [L] 
+0

"Not Found。このサーバーで要求されたURL/myFileNameが見つかりませんでした。また、ErrorDocumentを使用して要求を処理しようとしているときに404 Not Foundエラーが発生しました。これで、サーバーはURLを正しく変更しましたが(途中で感謝します)、最後に.phpがないため、サーバーはファイルが見つからないと言っています。何かアドバイス? – Matt

+0

私の編集したバージョン – Croises

+0

を試してください。あなたのコードは.phpを取り除きましたが、ページ間の変数を渡すときに私の$ _POSTコードが壊れました。今では変数を渡していたものはすべて渡されません。何が起こっているのか分かりません。技術的には.phpは削除されますが、私のサイトが壊れてしまいますので、これを正しい答えとして残しておきます。 – Matt

関連する問題