0

ここに私のウェブサイトがあります

http://www.coolcodez.net/ios/nicucalc

ナビのページをクリックすると、次のような URL が表示されることに注意してください。

http://www.coolcodez.net/ios/nicucalc/index.php?page=features

nicucalc ディレクトリに .htaccess ファイルを置きました。URLをこのように表示したい

http://www.coolcodez.net/ios/nicucalc/features

さらに良いだろう

http://www.coolcodez.net/nicucalc/features

これが私のhtaccessファイルです。一向にうまくいかない..

RewriteEngine on
RewriteCond %{QUERY_STRING} ^page=(.*)$
RewriteRule ^index\.php$ /%1/? [R=301,L]

私は何を間違っていますか。説明もお願いします

また、このフォルダーはワードプレスのインストールフォルダー内にあります。そのhtaccessファイルが何らかの形で私のものに影響を与えるかどうかはわかりません

4

1 に答える 1

0

index.phpあなたが持っているルールは、リクエストを/features/(または「ページ」が何であれ)にリダイレクトします。これ自体は問題ありませんが、内部的にindex.php に書き直す必要があります。そのため、2 つのルールが必要です。1 つはリダイレクトする (リクエストに一致する) もので、もう 1 つは内部的に書き換える (URI に一致する) ものです。

RewriteEngine On
RewriteBase /ios/nicucalc/

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /ios/nicucalc/index\.php\?page=([^&\ ]+)&?([^\ ]*)
RewriteRule ^ /ios/nicucalc/%1?%2 [L,R=301]

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

最初のルールはリクエストに対して一致します。これは次のようになります。

GET /ios/nicucalc/index.php?page=features HTTP/1.1

「機能」は、 を使用してルールでキャプチャされ、後方参照されます%1。2 番目のルールは、最初に要求が既存のファイルまたはディレクトリを指しているかどうかを確認します。そうでない場合は、URI がキャプチャされてから書き換えられindex.php、URI は「ページ」パラメーターを介してスクリプトに渡されます。

于 2013-08-28T20:52:42.690 に答える