将所有.HTML重定向到.PHP页面但不是从一个目录重定向?

时间:2013-08-15 22:23:31

标签: .htaccess url-rewriting

我最近将我网站上的所有.html个网页转换为.php。我将以下代码添加到.htaccess文件中:

RedirectMatch permanent ^(.*)\.htm(l?)$ $1.php

此工作正常,.html页重定向到.php页。

我的问题是,有没有办法限制此代码影响的文件?

更具体地说,我想阻止子域中的.html.htm页面被重定向。

shop.domain.com

我的网站的其他部分位于根文件夹的子目录中,需要以.html结尾,我不希望他们的.html扩展名重定向。

是否有任何代码或方法可以执行此操作?

1 个答案:

答案 0 :(得分:1)

将其添加到您的网络根.htaccess目录中的/

Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteBase /

RewriteCond %{HTTP_HOST} !^shop\.domain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/shop/? [NC]
RewriteRule ^([^/]+)\.html?$ $1.php [R=301,NC,L]

这不会重定向任何子目录,包括shop。如果您想允许(使用shop除外)

RewriteRule ^(.+)\.html?$ $1.php [R=301,NC,L]