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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (92)

PHP版本5.4.16

Apache Loaded模块

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]

当我添加上面的任何解决方案时,它根本不起作用。似乎$角色使重定向不起作用。

提前致谢。

提问于
用户回答回答于

RedirectMatch等效于Redirect,但使用正则表达式,如此处所示

Redirect默认状态代码是302解释这里

如果您将状态代码更改为301,则应该修复它。

用户回答回答于

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

这可以用:RedirectMatch 301 ^ / portalweb / $ https://www.mywebsite.com.br我不知道301为什么会这样做

扫码关注云+社区

领取腾讯云代金券