我需要在一个网站上放一个重定向,我有一些问题。
我有这个原始的。htaccess
RewriteEngine on
RewriteCond %{REQUEST_URI} .json$ [NC]
RewriteRule .* - [F,L]
RewriteRule config/.* - [F,L]
RewriteRule config - [F,L]
RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule ^.+$ - [L]
RewriteCond %{QUERY_STRING} ^$ [NC]
RewriteRule ^([^?]+)$ /novo-site/index.php?url
RewriteCond %{QUERY_STRING} ^$ [NC]
RewriteRule ^$ /novo-site/index.php
AddHandler php54-script .php
suPHP_ConfigPath /home/personalglass1/site02/novo-site/
我把最后4行提供这5页的重定向。
结果如下:
RewriteEngine on
RewriteCond %{REQUEST_URI} .json$ [NC]
RewriteRule .* - [F,L]
RewriteRule config/.* - [F,L]
RewriteRule config - [F,L]
RewriteCond %{REQUEST_FILENAME} -f [NC,OR]
RewriteCond %{REQUEST_FILENAME} -d [NC]
RewriteRule ^.+$ - [L]
RewriteCond %{QUERY_STRING} ^$ [NC]
RewriteRule ^([^?]+)$ /novo-site/index.php?url=$1
RewriteCond %{QUERY_STRING} ^$ [NC]
RewriteRule ^$ /novo-site/
AddHandler php54-script .php
suPHP_ConfigPath /home/personalglass1/site02/novo-site/
Redirect 301 /sobre-a-personal-evolution /sobre/
Redirect 301 /fechamento-de-sacadas-e-varandas /produto/envidracamento/
Redirect 301 /revendedores-autorizados /revendedores/
Redirect 301 /entre-em-contato /contato/
Redirect 301 /fotos-de-sacadas-evolution /galerias/
但是当我请求页面时:http://example.com/sobre-a-personal-evolution
我收到这个:http://example.com/sobre/?url=sobre-a-personal-evolution
但对我来说正确的是这个:http://example.com/sobre/
是我需要的最后一个请求时,第一个。
我尝试了一些改变,但没有效果!
有人能帮我解决这个问题并解释一下如何做到这一点,我需要了解如何做到这一点。
谢谢!
来自mod_alias/Redirect
文档:
超出匹配的URL- path的其他路径信息将被附加到目标URL。
"附加路径信息"有些模糊,但我认为它们指的是url
参数。
现在,这应该不会影响功能,所以我再次假设您只是不喜欢URL的外观。
然而,由于您无论如何都使用mod_rewrite
,您可以使用RewriteRule
实现与Redirect
相同的效果:
RewriteRule ^/sobre-a-personal-evolution(?:/(.*))?$ /sobre/$1 [R=301,L]
您不能将mod_rewrite
规则与mod_alias
规则混合使用,并且在内部重写规则之前保留重定向规则:
RewriteEngine on
RewriteRule .json$ - [F,L,NC]
RewriteRule config(/|$) - [F,L,NC]
RewriteRule ^sobre-a-personal-evolution /sobre/ [L,NC,R=301]
RewriteRule ^fechamento-de-sacadas-e-varandas /produto/envidracamento/ [L,NC,R=301]
RewriteRule ^revendedores-autorizados /revendedores/ [L,NC,R=301]
RewriteRule ^entre-em-contato /contato/ [L,NC,R=301]
RewriteRule ^fotos-de-sacadas-evolution /galerias/ [L,NC,R=301]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.+)$ /novo-site/index.php?url=$1 [L,QSA]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^$ /novo-site/ [L]
AddHandler php54-script .php
suPHP_ConfigPath /home/personalglass1/site02/novo-site/