我的htaccess正则表达式出了什么问题?

时间:2016-03-08 09:34:38

标签: regex .htaccess mod-rewrite

我想转换这个美丽的网址

http://insenti.ru/425/sayt-dlya-odinokih-ne-vybirayut/&page=2

进入这个

http://insenti.ru/texts.php?nead_id=425&page=2

所以我在我的htaccess中使用这个正则表达式:

RewriteRule insenti\.ru\/([0-9]+)\/(.*)\/(.*) insenti.ru/texts.php?nead_id=$1$3

但它有一个错误,重定向不起作用。

这是我的整个htaccess文件:

ErrorDocument 404 http://insenti.ru/search/err=nopage
RewriteEngine On
RewriteRule (album|chat|help|index|landing|process_data|search|signup|sympathy|user|userspecs)/(.*) $1.php?$2
RewriteRule insenti\.ru\/([0-9]+)\/(.*)\/(.*) insenti.ru/texts.php?nead_id=$1$3
RewriteCond %{HTTP_HOST} !^insenti.ru$ [NC]
RewriteRule (.*) http://insenti\.ru/$1 [R,L]

当我使用php preg_replace检查它时,它完美无缺:

$link = preg_replace('/insenti\.ru\/([0-9]+)\/(.*)\/(.*)/i', 'insenti.ru/texts.php?nead_id=$1$3', $link);

我会非常感谢你的帮助!!

1 个答案:

答案 0 :(得分:0)

RewriteRule与域名不匹配。您可以使用:

RewriteEngine On

RewriteRule ^(\d+)/[^/]+/(.*)$ texts.php?nead_id=$1$2 [L,NC]