删除扩展程序将无法正常工作

时间:2013-08-20 13:51:06

标签: .htaccess

我已经搜索了很多东西来完成这件事。 我找到了许多人声称可以使用的解决方案。

但它不适合我。我不知道为什么会这样。

下面是我现在的.htaccess。 前4行代码正常工作,其余代码不正常。

另外,我是否还需要更改导航中的链接?

对于网站点击here

CODE

Options Includes FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_HOST} !^dylanvanheugten.nl$ [NC]
RewriteRule ^(.*)$  http://dylanvanheugten.nl/$1 [R=301]

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

# Forces a trailing slash to be added
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

有人可以帮我修理一下我的文件吗?

提前致谢!

最后一件事,请解释一下你在做什么。 ; - )

1 个答案:

答案 0 :(得分:1)

这个条件:

RewriteCond %{REQUEST_FILENAME}\.php -f

将失败,因为您有一个尾部斜杠。例如,如果您请求/foo/bar/期望获得/foo/bar.php处的内容,则尾部斜杠将使此条件检查/foo/bar/.php作为文件存在,而不是。

您需要定制检查以忽略尾部斜杠:

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

您缺少的另一件事是对php文件的请求进行外部重定向:

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /([^/]+)\.php
RewriteRule ^ /%2/ [L,R=301]