2017-04-26 95 views
1

每當我試圖用.htacess隱藏.php分機號碼並使用.php分機號碼轉到一個頁面時,屏幕上顯示的所有內容都是「Page Not Found」。我以前完美的工作,但我最近更改了託管公司,現在我使用Plesk Onyx 17.0.17CentOS Linux 7.3.1611PHP 7.1.4.htaccess隱藏分機號碼

這裏是我的.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 
+0

是使用Apache或nginx的吧。如果它使用nginx,則此文件不執行任何操作。 –

+0

@AndrewRayner'mod_rewrite'是一個'Apache'模塊 –

+0

@PedroLobito正確,但他表示在切換主機時停止工作。這意味着,如果他以前使用Apache。這將工作。 –

回答

1

我現在的工作多虧Anubhava's答案上this question。我仍然不知道爲什麼我的老人可能不會工作。

這裏是我用來解決該問題的代碼:

## 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]