2013-08-16 141 views
0

我想从网站的url中删除'articles'和'artificial'文件夹,但是当我尝试将重写规则引入.htaccess文件时,我收到错误。url重写删除文件夹.htaccess

http://www.example.com/articles/artificial/are_string_beans_all_right_on_the_candida_diet.php

试图转换

http://www.example.com/are_string_beans_all_right_on_the_candida_diet.php

这里是我的.htaccess文件

DirectoryIndex index.php 
AddDefaultCharset utf-8 

RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$ 
RewriteCond %{HTTPS}s ^on(s)| 
RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteRule ^index\.php/?$/[L,R=301,NC] 
RewriteRule ^((?!articles/artificial).*)$ articles/artificial/$1 [NC,L] 

回答

0

的问题应该是最后一条规则的当前版本:你需要什么是负面看任何东西有文章不preceede /人工

正则表达式应该是:

((?<!(articles/artificial)).*) 

但这probabilly不会因为工作*是可变长度(见regex look arrounds

一个解决办法是更换负面看待后面积极向前看,允许可变长度。所以你的规则可能是:

RewriteRule ^(?!.*?articles/artificial.*?)(.*)$ /articles/artificial/$1