.htaccess 使用htaccess处理新旧URL

.htaccess 使用htaccess处理新旧URL,.htaccess,.htaccess,我想为我的网站使用新旧url。最近我用php转换成了MVC。转换到MVC后,我的旧url不起作用。但是如果有人想访问旧的url,我希望他可以访问旧的url。我的新网址如下 www.mysite.com/default.php?controller=dashboard 我已经通过htaccess更改了这个丑陋的url。现在,我的新url显示如下 www.mysite.com/dashboard 为此,我写了下面的htaccess RewriteRule ^([a-z]+)$ ./default

我想为我的网站使用新旧url。最近我用php转换成了MVC。转换到MVC后,我的旧url不起作用。但是如果有人想访问旧的url,我希望他可以访问旧的url。我的新网址如下

www.mysite.com/default.php?controller=dashboard
我已经通过htaccess更改了这个丑陋的url。现在,我的新url显示如下

www.mysite.com/dashboard
为此,我写了下面的htaccess

RewriteRule ^([a-z]+)$ ./default.php?controller=$1
RewriteRule ^([a-z]+)/$ ./default.php?controller=$1
现在的问题是,我的旧url是这样的

www.mysite.com/dashboard.php
如果有人使用.php ext尝试此类型的url,则会出现“错误404”。如何访问这两个url

www.mysite.com/dashboard
www.mysite.com/dashboard.php

您只需调整规则中的正则表达式,并将2条规则替换为以下规则:

RewriteRule ^([a-z]+)(?:\.php)?/?$ default.php?controller=$1 [L,QSA,NC]