在重定向上添加$停止工作,rewriteRule不工作

时间:2019-02-28 19:30:21

标签: apache .htaccess

PHP 5.4.16版

Apache加载的模块

core mod_so http_core mod_access_compat mod_actions mod_alias mod_allowmethods mod_auth_basic mod_auth_digest mod_authn_anon mod_authn_core mod_authn_dbd mod_authn_dbm mod_authn_file mod_authn_socache mod_authz_core mod_authz_dbd mod_authz_dbm mod_authz_groupfile mod_authz_host mod_authz_owner mod_authz_user mod_autoindex mod_cache mod_cache_disk mod_data mod_dbd mod_deflate mod_dir mod_dumpio mod_echo mod_env mod_expires mod_ext_filter mod_filter mod_headers mod_include mod_info mod_log_config mod_logio mod_mime_magic mod_mime mod_negotiation mod_remoteip mod_reqtimeout mod_rewrite mod_setenvif mod_slotmem_plain mod_slotmem_shm mod_socache_dbm mod_socache_memcache mod_socache_shmcb mod_status mod_substitute mod_suexec mod_unique_id mod_unixd mod_userdir mod_version mod_vhost_alias mod_dav mod_dav_fs mod_dav_lock mod_lua prefork mod_proxy mod_lbmethod_bybusyness mod_lbmethod_byrequests mod_lbmethod_bytraffic mod_lbmethod_heartbeat mod_proxy_ajp mod_proxy_balancer mod_proxy_connect mod_proxy_express mod_proxy_fcgi mod_proxy_fdpass mod_proxy_ftp mod_proxy_http mod_proxy_scgi mod_proxy_wstunnel mod_ssl mod_systemd mod_cgi mod_php5

问题

我正在尝试将某些页面从我的网站重定向到另一个网站的主页,但是我似乎无法使其正常运行。 目前我有这个:

redirect 301 /portalwebhttp://www2.tha.com.br

如果网址恰好是www.oldwebsite.com.br/portalweb,它就可以工作。但是,如果在portalweb之后添加任何内容,它将重定向到:http://www.mywebsite.com.br/anything

我尝试了以下解决方案:

redirect 301 /portalweb$ http://www.mywebsite.com.br

Redirect "/portalweb$" "http://www.mywebsite.com.br/"

RedirectMatch ^portalweb/$ http://www.mywebsite.com.br

RewriteEngine On
RewriteRule    "^portalweb$"  "http://www.mywebsite.com.br/" [R,L]
RewriteRule    "^portalweb/$"  "http://www.mywebsite.com.br/" [R,L]

当我添加以上任何解决方案时,它根本不起作用。似乎$字符使重定向无效。

谢谢。

2 个答案:

答案 0 :(得分:0)

使用@MichaelWarner提出的答案stackoverflow.com/q/6877486/4139335。我注意到我的301中缺少RedirectMatch

这有效: RedirectMatch 301 ^/portalweb/$ https://www.mywebsite.com.br 我不知道301是怎么做到的,如果有人向我解释,我会很高兴的。

答案 1 :(得分:0)

RedirectMatch等效于重定向,但使用正则表达式,例如here

Redirect的默认状态代码为302,如here所述。

如果您将状态代码更改为301,则应该对其进行修复。