【问题标题】:Htaccess redirect if url contain language and file extension?如果 url 包含语言和文件扩展名,Htaccess 重定向?
【发布时间】:2014-06-25 07:14:51
【问题描述】:

我有一个包含重定向 url 的大型列表,并且需要一个用于 url 的语言的全局规则。例如。我需要重定向到 /fr/ 的所有 /fr/ .jsp 文件以及扩展名为 .jsp 的所有 /es/ 文件到 /es,我在其他 stackoverflow 主题的帮助下尝试这样做,但这不起作用:

RewriteCond %{QUERY_STRING} ^/es/*.jsp$
RewriteRule ^es/$ /es [R=301,L]

【问题讨论】:

    标签: .htaccess mod-rewrite


    【解决方案1】:

    这条规则适用于两种要求:

    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(es|fr)/.+?\.jsp$ /$1 [R=301,L,NC]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(ru|de)/.+?\.jsp$ /en [R=301,L,NC]
    

    【讨论】:

    • 我可以在这里添加新网站上不存在的语言的 url 重定向吗?例如俄罗斯 /ru/.jsp 文件到 /en?我尝试从这里解决问题:stackoverflow.com/questions/10064603/…
    • 是的,请参阅更新的答案。现在/ru/*.jsp/de/*.jsp 转到/en/
    • hmmm 我的其他重定向现在被忽略了,如果不存在则可以添加规则然后这个规则?因为有一些特定的重定向,例如 /es/about-us.jsp 到 /es/about-us
    • 是的,请参阅编辑后的代码,您也可以在这些规则下方设置这些规则
    • 这是之前在我的 htaccess 文件“RewriteCond %{REQUEST_FILENAME} !-f”中,但是特定的 url 重定向仍然不起作用,我尝试了这个额外的规则来移动你的代码和你的代码之后,但它不正确,我可以做类似 if request 的事情吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 2012-08-21
    相关资源
    最近更新 更多