3

我得到了这个代码:

    RewriteEngine On
    RewriteRule   ^!(.+)$  user.php?user=$1 [L]

当我进入时效果很好

    'www.example.com/![username]'

但是当我进入

    'www.exaple.com/![username]/'

比我的网页想要从目录中加载所有数据、图像、css 文件、javascript 的:

    '/![username]/'

目录我怎么能忽略我的htaccess中的最后一个slach?

4

2 回答 2

2
 RewriteEngine On
 RewriteRule   ^!(.+)[/]?$  user.php?user=$1 [L]

应该为你做。URL 末尾的斜杠是可选的,带有[/]?.

编辑:

我知道你需要什么。您的站点正在从相对位置加载 CSS、JS、图像等;因此,如果您使用的是在 URL 中模拟文件夹的重写器,您的资源不会被探测加载。在这种情况下,您需要将错误的 URL(带有尾部斜杠)重定向到正确的 URL,而不使用尾部斜杠,如下所示:

 RewriteEngine On
 RewriteRule   ^!([^/]*)/$  /!$1 [R=301,L]
 RewriteRule   ^!(.+)$  user.php?user=$1 [L]

...未经测试。

于 2012-04-17T07:42:16.833 回答
0

您可以使用“rtrim”在 php 中删除末尾的 /

http://php.net/manual/en/function.rtrim.php

于 2012-04-17T07:35:59.780 回答