想要通过重写从URL中删除特定单词并重定向到正确的URL

时间:2018-02-19 18:07:58

标签: apache mod-rewrite url-rewriting

在我的网址中有一个URL,其中包含我要从网址中删除的特定字词,但原始请求应该包含该特定字词。例如......

www.example.com/web/un< - 原始网址 www.example.com/web/cn< - 原始网址

我想从网址中删除网页,因此它应该看起来像....

www.example.com/un& amp; www.example.com/cn

但在后面它应该重定向到上面提到的原始URL。

请帮我完成这件事。

2 个答案:

答案 0 :(得分:0)

您可以使用RewriteRule。将以下规则添加到server.config.htaccess

RewriteEngine on

#redirect /web/foobar to /foobar

RewriteCond %{THE_REQUEST} /web/(.+)/?\sHTTP [NC]
 RewriteRule ^.*$ http://exmaple.com/%1 [L,R]
 # internally map /foobar to /web/foobar
 RewriteRule ^/?([^/]+)/?$ /web/$1 [L]

这会将/web/foobar重定向到/foobar,从您的网址中删除/web段。

答案 1 :(得分:0)

这会在变量/web/%1之后保存所有内容,您可以在RevriteRule

之后使用它
RewriteEngine on
RewriteBase /

#take care bellow you must use http://www... and not directly www...

RewriteRule (.*) http://www.example.com/$1
RewriteCond %{REQUEST_URI} ^/web/(.*)$
RewriteRule (.*) /%1 [R=301,L]

重定向www.any_site.com/web/unwww.any_site.com/web/cn ... www.any_site.com/nn

www.example.com/unwww.example.com/cn ... www.example.com/nn

[R=301]标志设置返回码以建议重定向是永久性的

[L]标志阻止其他规则应用于此特定重写