0
RewriteEngine on
RewriteRule ^$ http://my-site.com/directory [R=301,L]

这会将我的根页面重定向到

http://my-site.com/directory/

(注意尾部的斜杠)。

如何在生成 URL 时使 .htaccess 省略斜杠?

4

1 回答 1

0

这是因为directory是现有目录,这不是重写的 url。用另一个词代替:

RewriteEngine on
RewriteRule ^$ /mypath [R=301,L]
RewriteRule ^mypath$ /directory/ [L]

来自noupe.com的报价:

服务器上的文件系统将始终优先于重写的 URL。例如,如果您有一个名为“services”的目录,并且该目录中有一个名为“design.html”的文件,则您不能将 URL 重定向到“http://domain.com/services”。发生的情况是 Apache 进入“服务”目录并且看不到重写指令。

要解决此问题,只需重命名您的目录(在开头或结尾添加下划线是一种简单的方法)。

奖励:删除每个网址中的尾部斜杠:

RewriteEngine On
RewriteRule ^(.*)/$ $1 [R,301,L]
于 2012-11-21T21:42:50.730 回答