1

最近、.htaccessファイルを更新して、URLの.php 拡張子を非表示にしました。domain.com/indexにアクセスしようとすると、php ファイルが表示されます。

domain.com/index.phpと入力すると、 domain.com /index の URLにリダイレクトされ、.php ファイルも表示されます。

セキュリティ上の理由から、.php ファイルを表示するために、他のすべての拡張子を拡張子のない URL にリダイレクトしたいと考えています。私の問題は、.html .aspなどのよく知られた拡張子をリダイレクトするように.htaccessを構成できないことです。拡張子のないURLにaspx.shtmlなどを追加し、コンテンツとして表示されている.phpファイルを取得します。

私の .htaccess ファイルは次のようになります。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# php extension to no extension url
RewriteCond %{THE_REQUEST} ^[A-Z]+\s.+\.php\sHTTP/.+
RewriteRule ^(.+)\.php $1 [R=301,L]


# no extension to the .php file
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]

# this is for the index
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
4

1 に答える 1

2

あなたはこのようなことを試すことができます:

# php extension to no extension url
RewriteCond %{THE_REQUEST} ^[A-Z]+\s.+\.php\sHTTP/.+
RewriteRule ^(.+)\.[a-zA-Z0-9]+$ $1 [R=301,L]

.php次に、拡張機能だけでなく、誰でもリダイレクトします。これを使用するには、末尾にドットと英数字の文字列が含まれるURLがないことを確認してください。

于 2013-03-01T14:26:20.493 に答える