如何通过htaccess

时间:2016-08-14 15:35:19

标签: regex apache .htaccess mod-rewrite

我有这样的旧网址:

http://example.com/news/newscategory/77654

它应该被重写为这个URL结构:

http://example.com/news/newscategory/id/77654

所以新闻在这里是静态的,因为它是文件夹。 newscategory可以是其他东西(多个类别)。我想将用户(301)重定向到id为ur / part的新网址。

我通过php获取网址,其中新闻是关键,newscategory是值,id是关键,最后的数字是值,值。

我正在使用这个htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
</IfModule>

然后我使用一些php库来获取值。

编辑:我要问的是我想将用户从第一个网址重定向到第二个网址,以便我可以获取该ID。

第一个链接已经有效,但我仍然有链接到旧的url结构,这会导致类别视图。实时网址:

旧结构:http://www.autonet.ee/uudised/paevauudised/77665

新结构:http://www.autonet.ee/uudised/paevauudised/id/77665

旧的应该将用户重定向到新链接。

1 个答案:

答案 0 :(得分:0)

如果我理解正确,请尝试此规则

RewriteRule ^([.*])/([.*])/([.*])/([.*])$ index.php?$1=$2&$3=$4

请解释是否错过了什么。

修改

好的,根据你的新闻和身份证是静态的,但他们的价值是动态的,请尝试下面的规则

RewriteRule ^(news)/([.*])/(id)/([.*])$ index.php?news=$1&id=$2