2017-07-19 18 views
0

からフォルダを無視し、私はそれを「pretify」のURLへの関数だと、私はこの質問はmilion回を頼まれました、私はほぼすべてのそれらのを試してみましたが、答えのどれも働いていない知っているから除いて、すべてのhtaccessを理解していません私のために。のhtaccessのRewriteRule

だから基本的に私は、CMSとそれに行くための構造を作成する時に自分の行くを引けるています。 "cms"は、それ自身の尊敬できるindex.phpを持つシステムと呼ばれるサブフォルダ内にあります。

私のhtaccessは、varの "page"を取得し、URLの.php拡張子を取り除くように設定されています。システムのサブフォルダからページを呼び出すまでは、すべて正常に動作します。

私の質問は、どのように私はhtaccesは、このフォルダを無視して、それが現在のサブフォルダに配置されているユーザーにもかかわらず、ルールを書き換えています継続して取得することができますか?

次のように私のhtaccessファイルが設定されています

RewriteEngine On 
Options +FollowSymLinks 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\\.]+)$ $1.php [NC,L] 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?page=$1 [QSA] 

<Files .htaccess> 
order allow,deny 
deny from all 
</Files> 


ErrorDocument 404 home 
ErrorDocument 403 home 

#php_flag display_errors off 

答えて

0

はこのようにそれを持って:あなたの返信用

ErrorDocument 404 /home 
ErrorDocument 403 /home 

RewriteEngine On 
Options +FollowSymLinks 

# skip subfolder from any rules 
RewriteRule ^subfolder(/.*)?$ - [L,NC] 

# add .php extension 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+?)/?$ $1.php [L] 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^system/(.*)$ system/index.php?page=$1 [L,NC,QSA] 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?page=$1 [L,QSA] 

<Files .htaccess> 
order allow,deny 
deny from all 
</Files> 
+0

感謝を!それは実際には動作しますが、私がページにアクセスしようとするとすぐに "system/blogposts"と言うことができます。たとえば、デフォルトで最初のインデックスに戻り、サブフォルダに存在するインデックスは使用されません。 –

+0

いいえ、私はそこに同じものか別のものを置くべきでしょうか? –

+0

私の遅い返信のためにひどく残念私は私の休日にあった、それは完璧に働いた、私は自分自身のためにそれを.php拡張子を隠す方法を理解しようとしていたが、私はそれを出て、ありがとう! –