2017-08-04 13 views
0

フレンド、フレンドリーなURLコンテンツを開くために両方のPHPファイルを取得する正しい方法は何ですか?フレンドリーなURLだけがpost.phpを開きませんcat.php

私は使用している場合は私の現在のコードはOK作品:

Options +FollowSymLinks 

RewriteEngine On 

# SEO URL Settings 
RewriteBase /site/ 

RewriteCond %{REQUEST_FILENAME} !-d [NC] 
RewriteCond %{REQUEST_FILENAME} !-f [NC] 
RewriteRule ^(.*)$ post.php?id=$1 [QSA,L] 

が、その後私はまた私が追加しようとした私のカテゴリのフレンドリーURLを必要とする:

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

が、これだけのポストをやってURLは開きますがカテゴリリンクはindex.phpにリダイレクトされますが、cat.phpの内容よりもポストの書き換えを削除した場合は表示されます。

誰かが私を助けてくれたら、本当にあなたの優しさに感謝します。

答えて

0

これは、[L]フラグを使用しているためです。

[L]フラグは、mod_rewriteによってルールセットの処理を停止させます。 ほとんどのコンテキストでは、これは、ルールが一致する場合は、さらにルール が処理されないことを意味します。これはPerlの最後のコマンド、または のCのbreakコマンドに対応します。現在の ルールをそれ以上のルールを考慮せずにすぐに適用する必要があることを示すには、このフラグを使用します。

Documentation

代わりに、試してみて、あなたのルールは次のようにレイアウトされています:私は、ページが見つかりません取得

RewriteCond %{REQUEST_FILENAME} !-d [NC] 
RewriteCond %{REQUEST_FILENAME} !-f [NC] 
RewriteRule ^(.*)$ post.php?id=$1 [QSA] 
RewriteRule ^(.*)$ cat.php?cat=$1 [QSA,L] 
+0

しかし、私はするRewriteRule ^(。*)$のcat.phpを削除すると? cat = $ 1 [QSA、L] index.phpの内容は –

+0

と表示されていますか? –

関連する問題