【问题标题】:Can't I have more than a certain number of redirects using htaccess?我不能使用 htaccess 进行超过一定数量的重定向吗?
【发布时间】:2011-01-25 18:15:06
【问题描述】:

我已经注册了 3 个域,都属于同一个站点。我这样做是为了抓住那些不记得正确 URL 的人。 所以我有:

  1. domain.com.au
  2. domain.org
  3. domain.org.au

主机位于 #1 之下,#2 和 #3 为托管域。

  • 我希望每个人都被定向到#3 (domain.org.au),因为它是澳大利亚的一个非营利慈善网站。
  • 我正在使用 Wordpress。在 Wordpress 管理设置中,我已将站点设置为在域的根目录中可见,这创建了两个 .htaccess 文件:一个在根目录中,一个在 wordpress 文件夹中。
  • 我正在编辑的文件位于根目录中,目前如下所示:
# BEGIN WordPress IfModule mod_rewrite.c> # deliberate missing open tag to show this line here RewriteEngine On RewriteBase / # from Wordpress RewriteCond %{REQUEST_FILENAME} !-f # from Wordpress RewriteCond %{REQUEST_FILENAME} !-d # from Wordpress RewriteRule . /index.php [L] # from Wordpress # Point all domains to .org.au RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com\.au [NC] RewriteRule ^(.*)$ http://domain.org.au/$1 [R=301,L] # RewriteCond %{HTTP_HOST} ^(www\.)?domain\.org [NC] # RewriteRule ^(.*)$ http://domain.org.au/$1 [R=301,L] /IfModule> # deliberate missing close tag to show this line here # END WordPress

我的第一个重定向工作正常,但是当我添加 .org -> .org.au 时,浏览器阻塞并说我必须进行许多重定向。这是可能的,这是我第一次涉足 .htaccess。那么 - 我做错了什么?

【问题讨论】:

    标签: wordpress .htaccess http-status-code-301


    【解决方案1】:

    您的第二个RewriteCond 仅检查主机名 是否以(www.)domain.org 开头,因此在重定向到domain.org.au 后仍会匹配。这将导致无限次数的重定向,导致您的浏览器在尝试一定次数后放弃。

    您真正需要的是匹配(www.)domain.org(END)。美元符号$ 表示正则表达式中的字符串结尾,如下所示:

    RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com\.au$ [NC]
    RewriteRule ^(.*)$ http://domain.org.au/$1 [R=301,L]
    RewriteCond %{HTTP_HOST} ^(www\.)?domain\.org$ [NC]
    RewriteRule ^(.*)$ http://domain.org.au/$1 [R=301,L]
    

    ^(www\.)?domain\.com\.au$ 表达式的工作方式如下:

    • ^ = 字符串开头
    • (www\.) = "www."作为一个群体
    • ? = 上一组 1 次或 0 次
    • domain\.com\.au = domain.com.au(点通常表示“任何字符”,但当它们前面有反斜杠时则不是)
    • $ = 字符串结束

    所以,整个表达式的意思是:

    完全是“domain.com.au”,没有其他字符,前面可以选择“www”。

    【讨论】:

    • 谢谢你,成功了!如果您不介意,只是出于好奇,所有其他位代表什么(除了 $ 表示字符串结尾)?
    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    • 2011-08-29
    • 2017-04-15
    相关资源
    最近更新 更多