1

次のコードを使用して、拡張子を指定せずに/itディレクトリにあるすべてのphpファイルにアクセスします。つまり、「http://www.mydomain.com/it/about」と書くだけでhttp://www.mydomain.com/it/about.php」にアクセスできます。

Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://www.mydomain.com/it/$1.php [L]

http://www.mydomain.com/it/question_answers.phpにアクセスしようとすると同じことが起こります。* "http://www.mydomain.com/it/question_answers.php"*に直接アクセスして"http://www.mydomain.com/it/question-answers"と書くにはどうすればよいですか?前のコードの下に次のコードを書きましたが、うまくいかないようです。

Redirect 301 /question-answer http://www.mydomain.com/it/question_answer.php

「http://www.mydomain.com/it/question-answer」と書いた場合、ブラウザは「http://www.mydomain.com/it/question-answer.php.php」ページを開こうとするためです 。 php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php.php "

投稿の小さな要約:

  • 私はページを持っています*"http://www.mydomain.com/it/question_answers.php"*
  • コードの最初の部分では、リンク*"http://www.mydomain.com/it/question_answers"*を使用して取得できます。
  • 次の「http://www.mydomain.com/it/question-answers」でも同じページにアクセスしたい

ありがとう!

4

1 に答える 1

1

これはあなたのために働くはずです:

Options -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://www.mydomain.com/$1.php

RewriteRule it/question-answer\.php http://www.mydomain.com/it/question_answer.php [R=301,L]

私は2つのことを変更しました:it/最初のRewriteRuleの新しいURLで削除しました。そうしないと、2番目のRewriteRuleit/it/
にも追加された私にリダイレクトされます。\.php理由はよくわかりませんが、RewriteRuleがリダイレクトではなくパターンを置き換えているようです。また、パターンがit/question-answerであり、実際のURLがでit/questions-answer.phpある場合、.phpは置き換えられません。

于 2012-06-14T20:06:06.693 に答える