如何删除.htaccess文件中的特定子目录

时间:2014-10-14 19:40:06

标签: wordpress apache .htaccess mod-rewrite redirect

即使经过广泛研究,我也无法解决重定向问题。我尝试了很多例子,但没有运气。

从此网址: http://www.example.com/store/product/name

我想得到: http://www.example.com/name

问题是唯一已知的字符串是" store"。其他字符串"产品"和"名称"可以包含字母,数字和" - "或" _"字符。

我正在现场网站和测试人员上测试它:htaccess.madewithlove.be

我使用的一个例子:

RewriteEngine On
RewriteBase /
RewriteRule ^store/([^/]+)/([^/]+) $2 [L,R=301]

这似乎适用于上述测试人员网站,但不适用于真实环境。我认为正则表达式有问题,第二个参数没有正确返回,或者我错过了其他的东西。

我还应该提一下,该网站在Wordpress上运行,在.htaccess文件中,还有以下由Wordpress自动创建的部分:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在内部WP规则之前,让您的规则如redirect

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^store/([^/]+)/([^/]+) $2 [L,R=301]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress