.htaccess文件无法用于扩展隐藏

时间:2014-03-02 16:46:55

标签: php regex apache .htaccess mod-rewrite

我在.htaccess文件中使用以下代码来隐藏php文件的扩展名。

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

我将此文件放在localhost/obis/中 但是当我运行没有index.php扩展名的.php文件时,会发生以下错误。

The requested URL /obis/index was not found on this server.

有人可以建议可能出现的错误吗?

我从本教程中获取了代码:http://www.youtube.com/watch?v=L6k_WvvpPpk

1 个答案:

答案 0 :(得分:2)

在root .htaccess中尝试这两个规则:

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+(?:index)?(.*?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,L,NE]

RewriteCond %{THE_REQUEST} /index [NC]
RewriteRule ^(.*?)index([/.]|$) /$1 [L,R=302,NC,NE]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]