【问题标题】:htaccess Regex 301 Redirecthtaccess 正则表达式 301 重定向
【发布时间】:2018-05-31 09:04:16
【问题描述】:

我很难永久重定向到工作。我希望这发生,使用正则表达式。

旧网址:https://example.com/olddir/other_name_here/123456/garbage.jpg

新网址:https://example.com/newdir/other-name-here-123456/

请注意从下划线到破折号的变化,以及我在数字字符串之后丢弃了额外位的事实。我已经尝试过了,但它不起作用(页面不存在并且仍然得到 404):

RewriteRule ^/olddir/other_name_here/([0-9]{6})/.+ /newdir/other-name-here-$1/ [R=301,L]

我在“other_name_here”目录位置有几百个名字,所以如果我可以动态地将下划线更改为连字符,那会很好但不是必需的。 olddir 和 newdir 是实际名称,可以硬编码。我究竟做错了什么?谢谢!

【问题讨论】:

  • 您是否在.htaccess 文件中和RewriteRule 之前添加了以下行?第 1 行:Options +FollowSymLinks 第2 行:RewriteEngine On 在你的`([0-9]{6})/.+ 后面添加一个$ 最后但同样重要的是,你确定你的新 URL 确实存在(文件在服务器上可用)吗?

标签: regex .htaccess redirect mod-rewrite http-status-code-301


【解决方案1】:

尝试以下操作:

  • 如果您的.htaccess 中不存在,请在您的RewriteRule 之前添加以下两行:

    Options +FollowSymLinks
    RewriteEngine On
    
  • 通过添加$,以下列方式更改您的正则表达式:

    RewriteRule ^/olddir/other_name_here/([0-9]{6})/.+$ /newdir/other-name-here-$1/ [R=301,L]
    
  • 尝试直接访问您的新 URL 页面并确认它们可以访问。

最后推荐这个网站了解.htaccess的详细配置:https://mediatemple.net/community/products/dv/204643270/using-htaccess-rewrite-rules

【讨论】:

    猜你喜欢
    • 2012-06-21
    • 2017-06-21
    • 2014-12-05
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 2015-01-30
    • 2018-04-19
    相关资源
    最近更新 更多