Htaccess重写重定向数字和下划线

时间:2014-11-10 17:50:57

标签: regex apache .htaccess mod-rewrite redirect

我正在尝试重写以下网址

http://example.com/Articles/32423324/this_is_a_test_articlehttp://example.com/Articles/this-is-a-test-article

到目前为止,我已经尝试了以下组合(请参阅下面所有在我的htaccess中注释掉的内容)但是没有一个能给我带来删除数字目录并将下划线更改为连字符所需的效果。

<IfModule mod_rewrite.c>  
Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
#REMOVE DIRECTORY MADE OF NUMBERS AFTER ARTICLES
#RewriteRule ^Articles/([0-9]+)$ /Articles/ [R=302,L]
#RewriteRule ^Articles/([0-9]+)/$ /Articles/$1 [R=302,L]
#RewriteRule ^Articles/([0-9]+)/(.*)$ /Articles/$1 [R=302,L]

#RewriteRule ^Articles/([0-9]+)/(.*)$ /$1 [L,NC,R]
#RewriteRule ^Articles/([0-9]+)/(.*)$ Articles/$1 [L,NC,R]
#RewriteRule ^Articles/([0-9]+)/$ Articles/$1 [L,NC,R]
#RewriteRule ^Articles/([0-9]+)/$ /Articles/$1 [R,L]
</IfModule>

1 个答案:

答案 0 :(得分:0)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On
RewriteBase /

RewriteRule ^([^/]+)/(?:\d+/)?([^_]*)_+([^_]*_.*)$ $1/$2-$3 [L,NE]

RewriteRule ^([^/]+)/([^_]*)_([^_]*)$ /$1/$2-$3 [L,R=302,NE]