2017-05-05 21 views
1

私はこの.htacessファイルを書きましたが、thread.phpprofile.phpのルールを除いてすべて動作しているようですが、私がコメントしない限り、2つのルールは同時に動作しません。何が問題なの?なぜこの.htaccessが機能しないのですか?

は、以下の問題があなたのプロフィールのルールは、スレッドのルールに一致したものと一致するということですコード

#1 --- prevent file listing in all of your folder ---- 

IndexIgnore * 

RewriteBase/

Options +FollowSymLinks 

RewriteEngine on 

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

#3 Force SSL 
<IfModule mod_ssl.c> 
    RewriteCond %{HTTPS} !=on 
    RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
</IfModule> 

#4 index.php to/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.php\ HTTP/ 
RewriteRule ^(.*)index\.php$ /$1 [R=301,L] 

#5 App rewrites 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ $1.php 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]*)$ /profile.php?user=$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([0-9]*)$ /thread.php?id=$1 [L] 

AddDefaultCharset UTF-8 

#6 Establish a custom 404 page not found ---- 

ErrorDocument 404 /404 

答えて

1

です。順序を入れ替えると、スレッドのルールが最初に進み、OKになるはずです。

+0

こんにちは、ありがとうございました。それは今働いていますが、あなたは "私はより大きな問題を抱えています"と言いました。何が問題になるのか、コードをどうすればいいのかを教えてください。 – idlatest

+0

実際には大丈夫です。間違いですが、ルールを実行する前に ".php"というURLが存在するかどうかを確認していますので、問題ありません。非常に多くのファイルシステムのチェックをしているとパフォーマンスが悪いと言います。それはおそらくもっと良い方法で行うことができます。しかし、これはより大きな問題であり、ここでは範囲外です。すべてを再考する必要があります。これは、要求ごとに少なくとも2回実行されることを覚えておいてください。何回ファイルシステムをチェックする必要があるか考えてください。 – SuperDuperApps

+0

私の答えは、それがあなたのために働いていることを示すために、その右上のチェックマークを使用して受け入れてください。スタックオーバーフローへようこそ:) – SuperDuperApps

関連する問題