【问题标题】:.htaccess rule redirecting, but not rewriting.htaccess 规则重定向,但不重写
【发布时间】:2015-09-11 21:39:56
【问题描述】:

我正在编写一个简单的重写规则。 我希望所有流量都转到给定路径以从另一个路径获取内容

我有这些规则:

Options +FollowSymlinks
RewriteEngine on

#this is the rule I am implementing
RewriteCond %{REQUEST_URI} ^/bar/$
Rewriterule ^(.*)$ "/foo/bar/" [L]

#This rule is working
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^([a-zA-Z]+)$ "/foo/bar/index.php?fb=$1&%1 [L]

在这条规则之后还有一条规则,它正在起作用:

和以前一样,它不起作用。像这样,它确实:

RewriteCond %{REQUEST_URI} ^/bar/$
Rewriterule ^(.*)$ "/foo/bar/" [R,L]

我想重写,而不是重定向,但我经常使用 R 来测试。 我可能做错了什么,但是什么?

注意:我之前有另一个规则,用于重写,它有效。它没有遗漏任何模块(我认为)。

【问题讨论】:

  • 你还有其他规定吗?
  • @JonLin,是的,我会发布它们
  • @anubhava 不,只是简单的 html 和一个简单的 php 脚本
  • 好吧,如果我有 [R] 所以,重定向,它会重定向。如果我真的想要重写,什么都不会发生。我只是获取默认页面 / 而不是 /foo/bar/
  • 你用什么 URL 来测试这个?这个 htaccess 在哪里?

标签: apache .htaccess mod-rewrite


【解决方案1】:

经过一番斗争,我发现了问题。

要使此规则生效:

#this is the rule I am implementing
RewriteCond %{REQUEST_URI} ^/bar/$
Rewriterule ^(.*)$ "/foo/bar/" [L]

需要这样写:

RewriteCond %{REQUEST_URI} ^/bar/index.php$
Rewriterule ^(.*)$ "/foo/bar/" [L]

它需要 index.php。您应该替换您拥有的文件或资源。

【讨论】:

    猜你喜欢
    • 2020-11-01
    • 2016-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    相关资源
    最近更新 更多