0

以下のhtaccessを使用して URL から.phpを削除していますが、機能しません。

http://www.me.com/index.php読むべきhttp://www.me.com/index

何か理由は?

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

私もこれらの例を見ましたが、運はありません:

1 - 2 - 3

4

2 に答える 2

1

私はこれを使いました.htaccess

AddDefaultCharset utf-8
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .* - [L]

DirectoryIndex index.php

RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)/([^/]+)?$ index\.php?page=$1&s=$2&o=$3 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/([^/]+)?$ index\.php?page=$1&s=$2 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})/?$ index\.php?page=$1 [L]

RewriteRule ^([a-zA-Z0-9_-]{3,20})?$ index\.php?page=$1 [L]

ErrorDocument 404 /404

3 つのパラメーターの名前を変更する

  • 1位はページ
  • 2位はs
  • 3位はオ

?URL でのとの使用を避けるためであり&、このようにページを呼び出します

http://testsite/page/s/o

そうすれば、print_r($_REQUEST)これが得られます

Array(
page => page
s    => s
o    => o
)

拡張機能を回避するために、次のメカニズムを使用します

$file = $_REQUEST['page'] . ".php";
if (file_exists('inc/' . $file)) {
    include('inc/' . $file);
}

それがあなたにとってもうまくいくことを願っています

于 2012-11-16T13:33:45.787 に答える
1

ポイントが欠けていると思います-URLを変更/書き換え.phpません-要求したURLに追加するため、要求http://www.example.com/indexすると、要求されたファイル名がディレクトリではないことを確認し( !-d)、​​有効なPHPファイルが存在することを確認します( -f)。次に、(URL ではなく) 要求を書き換えて、index.phpファイルを要求します。

これに関するドキュメントmod_rewriteからの説明は

要求された URL をオンザフライで書き換えるルールベースの書き換えエンジンを提供します。

于 2012-11-16T12:43:30.840 に答える