2012-04-12 10 views
0

私は次のパスで、私の管理システムにページを持っているのURL書き換えをオーバーライド:

http://192.168.1.253/xxxxxx/admin/view/news-items/issue/3

私はそれが指示するように書き換えしようとしています:

http://192.168.1.253/xxxxxx/admin/view/news-items.php?issue=3

しかし、ページが表示されてもPHPは$ _GET変数を検出できないので、動作させるようには見えません。 2つの.htaccessファイルがあります.1つはxxxxxxディレクトリに、もう1つはadminディレクトリにあります。ここで彼らは、次のとおりです。

XXXXXX:

RewriteEngine On # Turn on the rewriting engine 

RewriteRule ^([^/.]+)/delete/(1-9)/?$ $1.php?delete=$2 [L] 
RewriteRule ^([^/.]+)/?$ $1.php [L] # rewrite without query string parameters 
RewriteRule ^([^/.]+)/([^/.]+)/?$ $1.php\#$2 [L] # one name string parameter 

管理者:

RewriteEngine On # Turn on the rewriting engine 

RewriteRule ^([^/.]+)/?$ $1.php [L] # rewrite without query string parameters 
RewriteRule ^([^/.]+)/(\d+)/?$ $1.php?id=$2 [L] # one id parameter 
RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/issue/(\d+)/?$ $1.php?issue=$2 [L] # one issue parameter 
RewriteRule ^([^/.]+)/(\d+)/(\d+)/?$ $1.php?id=$2&file_id=$3 [L] # two parameters 

編集ここ

は、新しいコードは次のとおりです。

XXXXXX:

RewriteEngine On # Turn on the rewriting engine 

#RewriteRule ^([^/.]+)/delete/(\d+)/?$ $1.php?delete=$2 [L,QSA] 
RewriteRule ^([^/.]+)/?$ $1.php [L,QSA] # rewrite without query string parameters 
RewriteRule ^([^/.]+)/([^/.]+)/?$ $1.php\#$2 [L,QSA] # one name string parameter 

管理者:あなたは、あなたの書き換えルールに[QSA]フラグを含める必要が

RewriteEngine On # Turn on the rewriting engine 

#RewriteRule ^([^/.]+)/?$ $1.php [L,QSA] # rewrite without query string parameters 
#RewriteRule ^([^/.]+)/(\d+)/?$ $1.php?id=$2 [L,QSA] # one id parameter 
RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/issue/(\d+)/?$ $1.php?issue=$2 [L,QSA] # one issue parameter 
RewriteRule ^([^/.]+)/(\d+)/(\d+)/?$ $1.php?id=$2&file_id=$3 [L,QSA] # two parameters 

答えて

1

RewriteRule ^([^/.]+)/delete/(1-9)/?$ $1.php?delete=$2 [L,QSA] 
RewriteRule ^([^/.]+)/?$ $1.php [L,QSA] # rewrite without query string parameters 
# etc. 

documentationから:

クエリ文字列

を変更

デフォルトでは、クエリ文字列は変更されずに渡されます。ただし、クエリ文字列部分を含む置換文字列にURLを作成することはできます。置換文字列内の疑問符を使用して、次のテキストをクエリ文字列に再挿入する必要があることを示します。既存のクエリ文字列を消去する場合は、置換文字列を疑問符だけで終了します。新しいクエリ文字列と古いクエリ文字列を組み合わせるには、[QSA]フラグを使用します。

+0

QSAを各ルールに追加した後も、これまでと同じことをやっています。上記をご覧ください。 –

+0

@Phil 'R = 302'をフラグに追加してください。これは一時リダイレクトを行います。ブラウザのアドレスバーに書き換えられたURLが表示されます。それが正しく書き直されたにもかかわらずそれらの変数を得ることができない場合は、PHPスクリプト内の別のルールか、別の理由が考えられます。 – LazyOne