0

私は自分のサイトから .php を取り除こうとずっと努力してきました。example.com/about.php ではなく、example.com/about のようにしたい。example.com/about のように入力できるように書き換える必要がありますが、私のウェブサイトのリンクをクリックして example.com/about に移動すると、例として URL が読み込まれます。 example.com/about.php ではなく、.com/about です。全体として、誰かが私のページに何かをロードするたびに、URL の最後に .php が含まれないようにしたいと考えています。私の .htaccess は今のように見えます。

RewriteEngine on

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/]+)/$ $1.php

ありがとうございました。

4

2 に答える 2

0

しかし、私のウェブサイトのリンクをクリックしてexample.com/aboutに移動すると、example.com/about.phpではなくexample.com/aboutとしてURLがロードされます

これを修正するには、サイトのリンクを から に変更する必要がありexample.com/about.phpますexample.com/about。「野生の」リンクがまだ.phpURL を指している場合でもリダイレクトを実行できますが、サイトのリンクを変更して拡張機能を削除しない限り、すべてのページの読み込みがサーバーに 2 回ヒットすることになります。

リダイレクトに関して:

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

末尾のスラッシュを照合しているため、php拡張子を元に戻すルールがどのように機能しているのかわかりませんが、でファイルをチェックすると、ファイル名に末尾のスラッシュが迷子に-fなります。/some/path/to/the_file/.php/some/path/to/the_file.php

試す:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/(.+?)/?
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^ /%1.php [L]
于 2012-09-16T00:12:52.250 に答える
0

Try this:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

You wouldn't have to change your site's structure as it simply targets "malformed" URIs in the form of "http://x.com/page" without an extension at the end. Hope I helped!

于 2012-09-15T17:23:37.350 に答える