【问题标题】:Trailing slash redirect斜杠重定向
【发布时间】:2014-11-03 11:49:01
【问题描述】:

another SO topic 发起的bug report in MAMP 之后,我想问一下,如果 MAMP 3.0.6(最新版本)在以下 .htaccess 规则下无法正常运行,我将如何应对这个错误:

RewriteRule ^(.*)/$ /$1 [L,R=301]

应该重定向类似的东西

http://localhost/foo/test/

http://localhost/foo/test

但重定向到

http://localhost/test/

改为。

谢谢,问候!

【问题讨论】:

  • 您是否在任何地方设置RewriteBase?如果你是,如果你放弃它会发生什么,如果你不是,如果你将它设置为/会发生什么?
  • 我没有重写基础。我添加了你提供的那个,但是没有用,对不起:(

标签: apache .htaccess redirect mamp trailing-slash


【解决方案1】:

在您的根 .htaccess 中尝试此规则:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s]
RewriteRule ^(.+?)/$ /$1 [R=302,L,NE]

另外请记住,如果/foo/test 是一个真实目录,那么mod_dir 将添加尾部斜杠,除非您的.htaccess 中有DirectorySlash off

PS:这是在 MAMP 3.0.2 上测试的。

【讨论】:

  • 感谢您的回复 :) 不幸的是,这不起作用。我的 MAMP 目录中有一个简单的文件夹,它只包含一个 .htaccess 而没有其他内容。将上述内容放在 .htaccess 中不会改变 MAMP 的行为:/
  • 那么您没有正确设置它,因为它在我身边使用完全相同的 MAMP 3.0。确保将其放在DocumentRoot/.htaccess 中(而不是任何随机文件夹中)。并且请阅读我在我的规则下面提到的内容。
  • DocumentRoot 文件夹是什么意思?如果我在“htdocs/test”下从事一个项目,您会将“htdocs/test”视为根文件夹还是“htdocs”?我知道这是一个愚蠢的问题,但我只是确保我们在谈论同一件事:)
  • DocumentRoot 在您的Apache config 中设置。很可能是htdocs 文件夹,但最好签入/Applications/MAMP/conf/apache/httpd.conf 文件。
  • 另一种检查方法是使用此代码<?php phpinfo(); ?> 创建一个名为info.php 的文件,然后打开http://localhost/info.php 以检查它的DOCUMENT_ROOT 值是多少。
猜你喜欢
  • 2011-10-19
  • 1970-01-01
  • 1970-01-01
  • 2013-01-27
  • 2016-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多