私は次のパスで、私の管理システムにページを持っているのURL書き換えをオーバーライド:
私はそれが指示するように書き換えしようとしています:
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
QSAを各ルールに追加した後も、これまでと同じことをやっています。上記をご覧ください。 –
@Phil 'R = 302'をフラグに追加してください。これは一時リダイレクトを行います。ブラウザのアドレスバーに書き換えられたURLが表示されます。それが正しく書き直されたにもかかわらずそれらの変数を得ることができない場合は、PHPスクリプト内の別のルールか、別の理由が考えられます。 – LazyOne