【发布时间】:2012-10-29 19:08:32
【问题描述】:
这是我第一次尝试编写 htaccess 规则。我的目标是将所有相对链接重定向到绝对链接。一开始我在测试:
RewriteEngine On
RewriteRule gallery\.php$ http://www.domain.com/sample/gallery.php
RewriteRule info\.php$ http://www.domain.com/sample/gallery.php
当我单击链接时,第一个规则使 Firefox 抛出错误“页面未正确重定向”,而第二个规则工作正常。未来的想法是写一个规则,比如,
RewriteRule catchAllRelativeLinks$ http: //www.domain.com/sample/$1
但如果我不能使第一条规则起作用,我想我将找不到如何制定真正的规则。
编辑: 为了避免无限循环,我不能通过捕获变量来尝试了解我是在第一个还是第二个位置?我尝试过的一些想法(但失败了):
RewriteCond %{IS_SUBREQ} false
RewriteRule ^gallery\.php$ http://www.domain.com/gallery.php?a [R=302,L]
RewriteCond %{THE_REQUEST} !(\?something)$
RewriteRule ^gallery\.php$ http://www.domain.com/gallery.php?something [R=302,L]
或使用环境变量,
再次感谢
【问题讨论】:
-
第一个要匹配的是什么?是否意味着
/gallery.php重定向到/sample/gallery.php?如果是这样,它应该包括^,如^gallery\.php$ -
你可以查看这个解释和指南(:stackoverflow.com/a/21754308/5465790
标签: .htaccess mod-rewrite redirect