2014-10-01 89 views
0

我想删除我的网站上的“.php”。我已经改变了总部设在Dreamhost的维基提供以下文件的.htaccess文件:无法使用htaccess从网站删除.php。 Dreamhost服务器

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

然而,这并不在现场工作。例如该代码不起作用:

<a href ="about">link</a> 

它显示了以下错误:

未找到

请求的URL /jimmyvosler.com/public/about.php此服务器上未找到。

此外,尝试使用ErrorDocument处理请求时遇到404未找到错误。

此作品(但仍显示在最后.php为,这是林试图修复):

<a href ="about.php">link</a> 

我不明白是什么原因造成这一点,特别是因为错误甚至点正确的地方。有没有需要检查我的管理工具的设置?

+0

什么是第二个链接'about.php'的完整路径?服务器为您提供404的事实使我认为重新路由的位置不正确。如果删除扩展失败,我敢肯定你会得到更多的东西在500或503(服务器错误),而不是404(客户端错误)的线... – War10ck 2014-10-01 19:21:33

+0

你可以通过放置.php放在名为“about”的目录中,并将其重命名为“index.php”。更改任何链接到链接到目录,他们不会看到.php。这是相当标准的做法,并防止你不得不乱用htaccess。 – Bradley 2014-10-01 19:28:36

+0

将'/ $ 1.php'改为'$ 1.php' – wavemode 2014-10-01 19:36:10

回答

0

试试这个:

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

试试这个:

Options All -Indexes 
RewriteEngine On 

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