0

我制作了这个 .htaccess 文件以尝试删除链接上的最后一个斜杠,但它不会删除并且不会重定向其他任何内容,例如,如果您访问:mydomain.com/fruit 它会重定向到 mydomain.com/fruit/ 并且我想要正好相反(水果目录就是一个例子,我有很多目录,每个目录里面都有一个 index.php 文件或其他类型的文件,只有几个是空的)。我已经尝试了两种不同的方法(从一些网站复制),但没有一种方法能按我的意愿工作。

代码一:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain.com
RewriteRule ^ http://www.mydomain.com%{REQUEST_URI} [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$  /$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)$
RewriteRule (.*) http://www.mydomain.com/$1 [L,R=301]

代码二:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain.com
RewriteRule ^ http://www.mydomain.com%{REQUEST_URI} [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)$
RewriteRule (.*) http://www.mydomain.com/$1 [L,R=301]

我的实际文件(但使用我的真实域):

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain.com
RewriteRule ^ http://www.mydomain.com%{REQUEST_URI} [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/+$ http://www.mydomain.com/$1 [L,R=301]

Options All -Indexes

<Files .htaccess>
order allow,deny
deny from all
</Files>

如果我评论这一行:RewriteCond %{REQUEST_FILENAME} !-d Chrome 给我一个错误:错误 310 (net::ERR_TOO_MANY_REDIRECTS)。

任何人都可以帮我编写 .htaccess 文件的代码吗?提前致谢。

4

1 回答 1

1

您应该在 Apache 网络服务器http://httpd.apache.org/docs/current/mod/mod_dir.html添加的斜杠上阅读此内容 希望这会有所帮助

于 2012-07-14T12:12:26.323 回答