使用.htaccess将所有php扩展名重定向到无扩展名

时间:2014-04-16 07:37:04

标签: php redirect

我已经设置了删除php扩展的规则我现在想要将带有php扩展名的url重定向到没有php扩展名的url

EX:mysite.com/test.php redirect to mysite.com/test     mysite.com/test.php? redirect to mysite.com/test?     mysite.com/test.php# redirect to mysite.com/test#

我有很多php页面,所以我想要一个所有页面的规则,我的php页面也生成动态URL。

由于

2 个答案:

答案 0 :(得分:0)

我假设您使用的是Apache,

您可以使用以下内容;

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

并确保上述规则,如果文件不存在,将回复404,或者它是一个目录。

当您输入domain.com/tes时,这将在后端执行domain.com/test.php

如果您想在用户使用domain.com/test.phpdomain.com/test时重定向用户,可以使用;

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1/ [R=301,L,NE]

答案 1 :(得分:-1)

如果是Apache,那么在Apache设置的虚拟主机目录中,您需要添加以下代码

Options Indexes FollowSymLinks MultiViews

然后重新启动Apache,在这种情况下,您不必重定向每个页面