.htaccess隐藏页面扩展名

时间:2017-04-26 15:20:29

标签: php .htaccess mod-rewrite plesk

每当我尝试使用.php隐藏.htacess扩展程序并使用.php扩展程序转到某个页面时,屏幕上显示的所有内容都是"找不到页面&# 34 ;.我以前工作得很好,但我最近改变了托管公司,现在我正在使用Plesk Onyx 17.0.17 CentOS Linux 7.3.1611PHP 7.1.4

以下是我的.htaccess文件的内容:

Options -Multiviews -Indexes

# Disable Automatic Directory detection
DirectorySlash Off

ErrorDocument 404 /!404.php

RewriteEngine On
RewriteBase /

# Remove trailing slashes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/+$ $1 [R=301,L]

RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

1 个答案:

答案 0 :(得分:1)

感谢Anubhava's this question上的quill.js答案,我现在就开始工作了。我仍然不知道为什么我的老人不会工作。

以下是我用来解决问题的代码:

## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

## To internally redirect /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]