1

我使用 PHP。

一个工作的 htaccess 文件

RewriteEngine On
RewriteBase /folder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule .*[^/]$ $0/ [L,R=301]
RewriteCond $1 !^(index\.php)
RewriteRule ^(.+)$ index.php/$1 [L]

查看带有# 注释的行。取消注释时,它会将重定向添加到斜杠。我使用toroPHP的 URL 重写。

我想改写为结尾斜线

  • 我想从重写的 URL 重定向到结束斜杠,就像上面的代码一样。
  • 我不想从真实文件中结束斜线,比如 jquery.js、style.css。

示例(2012 年 12 月 21 日更新)

  • /category/test应该/category/test/
  • http://www.test.com/myjsfile.js应该http://www.test.com/myjsfile.js

问题

  • 如果我使用上面未注释的代码,它会为所有 url 添加一个结尾斜杠,包括 javascript 文件和 css 文件。
  • 我只希望重写的网址以斜杠结尾。

问题

可以用htaccess完成吗?如果有怎么办?

4

1 回答 1

0

htaccess 几乎是正确的。然而,REQUEST_FILENAME需要在每个重写规则之前,而不仅仅是在第一个之前。

这有效

RewriteEngine On
RewriteBase /folder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .*[^/]$ $0/ [L,R=301]

RewriteCond $1 !^(index\.php)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php/$1 [L]
于 2012-12-27T12:38:25.047 回答