如何编辑htaccess和mod_rewrite以删除文件扩展名

时间:2013-12-09 23:53:14

标签: .htaccess mod-rewrite

首先,我在GoDaddy服务器上。我知道这很重要,因为我已经看过很多像这样的问题了。

所以,我试图让文件扩展名在我的所有网站网址上消失。那么,页面: www.mydomain.com/somepage.php ......会变成...... www.mydomain.com/somepage

或者,如果页面在目录中,它也会删除扩展名... www.mydomain.com/somedir/someotherpage.php ......会变成...... www.mydomain.com/somedir/someotherpage

我环顾四周,发现每个人都建议我将.htaccess改为这样的......

Options +FollowSymLinks
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L]

ErrorDocument 404 /404.php

不幸的是它不起作用。当我访问www.mydomain.com/somedir/somepage时,我会被重定向到我的404页面。 (但常规的PHP页面工作得很好www.mydomain.com/somedir/somepage.php及其扩展名)

有人可以帮忙吗?

我已经浏览了很多这些类型的问题,并尝试了多个答案......但无法让它发挥作用。请帮忙。

1 个答案:

答案 0 :(得分:0)

DOCUMENT_ROOT/.htaccess文件中试用此代码:

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R,L,NC]

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