2013-10-22 33 views
1

我很努力想出正确的代码来做我所需要的。我已经通过SO和其他网站搜索,并找到答案关闭到我想要的,但我只是不能完全把它一起正确,.htaccess是我的一个巨大的弱点。通过htaccess删除URL中的字符串

我想使它从网站上的所有网址中删除整个文件夹级别,否则保留该结构。之后,我需要添加“.html”到最后。添加并不难,但我错过了我需要删除文件夹的内容。

开始网址:www.domain.com/ANYFOLDER/any-page-name

(奖金:www.domain.com/ANYFOLDER/ANYDEPTH/any-page-name

结束URL:www.domain.com/any-page-name.html

我们有一个客户,谁是从一个静态的网站,移动CMS驱动的,具有他的网址有一些很好的排名/流量,并且被吓呆了,他会失去这个(我们不会将永久重定向作为解决方案)。

回答

0

您可以使用此规则对于此重定向:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(?:[^/]*/)*((?!.+?\.html$)[^/]*)$ /$1.html [L,R=302,NC] 
+0

非常感谢你的代码!我需要一次把这个分开,以确保我明白到底发生了什么。 htaccess正则表达式语法总是让我有点困惑(我很少使用它,所以我的熟悉程度很弱)。我注意到这实际上也影响了链接的对象。我没有预料到这一点。例如'/ wp-content/themes/custom/style.css'变成'/ style.css.html'。对此有何想法? –

+0

请检查我更新的修复css问题。 – anubhava

+0

谢谢你的帮助anubhava。我相信我会受到Wordpress的干扰,不会将其作为一项功能处理。我不认为这会是一个因素;我应该有更好的想法。我有“.html”部分工作。我会再次提出这个问题,但更具体地和在WP的背景下。谢谢! –