1

サイトの URL でファイル名の拡張子を非表示にしたいのですが。

例は http://www.mysite.com/home.php http://www.mysite.com/control.phpです。

代わりに http://www.mysite.com/home http://www.mysite.com/controlとして表示されます

私はこれを調べていて、URL のファイル名拡張子を隠しているように見えるこのコードを見つけましたが、リンクが機能せず、404 エラーが発生します。サイトのリンク パスなどを修正する必要があると思います。

誰かが私が何をする必要があるかを教えてください.htaccessで使用しているコードは次のとおりです。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/]+)/$ $1.php
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.]+\.php(\?[^\ ]*)?\ HTTP/
RewriteRule ^(([^/]+/)*[^.]+)\.php$ http://www.mysite.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ http://www.mysite.com/$1/ [R=301,L]
4

2 に答える 2

0

すべての拡張子 (.php、.html だけでなく) を非表示にする場合は、次を使用します。

Options +FollowSymLinks +MultiViews

httpd.conf または .htaccess で

于 2013-02-13T13:38:12.127 に答える
0

Googleはスタックの前に助けることができます:)

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

# Forces a trailing slash to be added
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

http://eisabainyo.net/weblog/2007/08/19/removing-file-extension-via-htaccess/ また、rewriterule を作成して .php 拡張子を削除しますか?

于 2013-02-13T13:35:14.440 に答える