0

文字列、、をに書き直すように書き直しましsite.com/foosite.com/?loc=foo.php。正常に動作しますが、と入力するsite.com/foo.phpと、に書き換えるのではなく、CSSがない場合を除いsite.com/?loc=foo.php.phpて表示される他の何かに書き換えます。site.com/?loc=foo.phpとして書き直してほしいsite.com/?loc=foo.php.php

私はindex.phpそれを読ん$locで含むものを持っていますfoo.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ ?loc=$1.php

トラブルシューティング:

私は反響$locしましindex.phpたが、フィードバックはまったくありませんでした。それから私は反響$locし、それが宣言foo.phpされていないことを知りました。これは、上記のコードで何らかの理由で書き直されていない$locという結論につながります。site.com/foo.php

4

1 に答える 1

1

あなたが持っているスクリプトはうまくいくはずです。これが私がテストしたものです。

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)$ ?loc=$1.php

これの意味は:

1).htaccessに干渉する別のパラメータがあります。上記以外の行を(#で)コメントアウトします。次に、犯人が見つかるまで、それらを1つずつ(またはできるだけ少なく)引き戻します。

2)loc.phpが実際に存在します。-fは、「ファイルが存在しない場合」を意味します

3)$ locを生成するとき、何らかの理由で変数を除外しています。index.phpファイルにトップを追加することで確認できます。最初の行はget('lol' =>'loc.php.php'である必要があります)を示し、2番目の行は進行中のすべての会議を示しています。

<?php
  print_r($_GET);
  echo '<br><br>';
  print_r($_SERVER);
?>
于 2012-07-24T06:49:41.663 に答える