【问题标题】:Redirect 301 .htaccess not working重定向 301 .htaccess 不起作用
【发布时间】:2014-12-21 16:10:16
【问题描述】:

以下是我的 htaccess 和 Redirect 301 不起作用。有什么想法吗?

命令允许,拒绝 允许所有人 选项 - 索引 选项 +FollowSymLinks 重写引擎开启 RewriteBase / RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f 重写规则。索引.php [L] 重定向 301 /index.php?id=4 site.com/newdirectory/

【问题讨论】:

  • -1:为什么要order allow,deny,如果您要拒绝所有人,请定义“不工作”。
  • 我有这个重定向:重定向 301 /index.php?id=4 site.com/newdirectory/ 这不起作用
  • 你已经说过了,这如何回答我的问题?
  • “不起作用”是什么样的?您使用的是什么版本的 Apache? (请记住,您的允许、拒绝语法将是 invalid in 2.4 out of the box,无论编写是否明智......)
  • …………我放弃了……

标签: php .htaccess redirect


【解决方案1】:

order 指令不需要,只需将其取出即可。此外,您不能匹配 Redirect 指令中的查询字符串,而是使用 RewriteCondmod_rewrite,而不是像这样:

RewriteEngine On 
RewriteBase /

RewriteCond %{QUERY_STRING} ^id=4$ [NC]
RewriteRule ^index\.php$ /newdirectory/? [L,NC,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

【讨论】:

  • @anuhava 请注意,在这种情况下,[NC] 标志应该在RewriteCond 上,而不仅仅是RewriteRule。此外,默认情况下[R] 发出302(临时)重定向,因此无需指定响应代码,除非您希望发出另一种类型或重定向。 (对于不知道您可以更改响应代码的任何人,从技术上讲,您可以使用任何代码 - 但只有 3xx 范围内的代码才能正常工作。您也可以通过关键字参考最常见的类型:temp = = 302, permanent = 301, 和 seeother = 303.)
猜你喜欢
  • 2013-04-06
  • 2017-06-30
  • 2014-07-05
  • 2011-03-08
  • 2013-03-14
  • 2023-03-27
  • 1970-01-01
相关资源
最近更新 更多