2010-11-19 19 views
0

私はtestsiteというディレクトリで作業しています。すべての.php拡張子を末尾にスラッシュで置き換えます。私は途中です。例えば、http://mydomain.com/testsite/aboutと入力すると、http://mydomain.com/testsite/about.phpがロードされます。Apacheを使用してURLに末尾のスラッシュを追加する

しかし、URLが./about/として表示され、検索エンジンのランキングに1つのバージョンしか表示されないようにしたい。それは保存(およびディスプレイから、私は渡す任意のパラメータを非表示)することが可能で、また

RewriteEngine On 
RewriteBase /testsite/ 
RewriteRule ^()$ index.php [NC,L] 
RewriteCond %{REQUEST_URI} !(^/?.*\..*$) [NC] 
RewriteRule (.*)$ $1.php [NC] 

は、ここに私の.htaccessですか?

すべてのご協力をいただきありがとうございます。

答えて

1

は、これらのルールを試してみてください。

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule .*[^/]$ %{REQUEST_URI}/ [L,R=301] 
RewriteRule ^$ index.php [L] 
RewriteRule (.*)/$ $1.php [NC] 
+0

こんにちはガンボ。ありがとう。私はこれを試してみましたが、./about(./about%25を与える)のようなURLの最後に%25を追加して、./about%25%25%25のループで失われてしまいます。私がアドレスバーに./about/を置くと。私はそれがほぼそこにあると思うが、それほどではない。 – user114671

+0

@Outerbridge Mike:申し訳ありませんが、間違った文字。 – Gumbo

+0

こんにちはガンボ。助けてくれてありがとう。それは近づいています。私が./aboutに行くと、./about/がURLとして正しく置かれますが、CSSをロードせずにページが表示されます。私がリンクをクリックすると、./contact-us/と言います。./about/contact-us.php.php.php.php.php !!!それはほぼ正しいと思われるので、私は今日後でもっと時間があるように見えるでしょう。再度、感謝します。 – user114671

0

はで最後のルールを交換してみてください:

RewriteRule (.*)$ $1.php [NC] [E=ORIGINAL_URL:$1] 
+0

こんにちはデビッド。残念ながら私は以前と同じ結果を得ています。 E =部品は何をしていますか? Thanks Mike – user114671

+0

Eまたはenvは環境変数です。詳細はhttp://httpd.apache.org/docs/2.2/env.htmlを参照してください。上記の例では、元のURLは書き換えが行われても保存されます。 –

関連する問題