添加尾部斜杠到slug url

时间:2014-09-29 10:11:21

标签: php .htaccess mod-rewrite

我有这个重写条件 我用它来抓住slu ur url并搜索一个像这样的博客文章:

http://localhost:8080/blog/my-first-post

所以我抓住了slug然后寻找帖子并展示它。 现在它接受这两种形式

http://localhost:8080/blog/my-first-post
http://localhost:8080/blog/my-first-post/

我应该如何更改.htaccess,以便它总是在末尾添加或重定向斜杠。

我应该如何更改它以删除斜线?

这是我现在拥有的.htaccess,我在博客目录中有它:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

1 个答案:

答案 0 :(得分:1)

您可以用这个替换当前的htaccess代码

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /blog/

    # add trailing slash
    RewriteCond %{REQUEST_URI} !/$
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ $1/ [R=301,L]

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

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>

现在,它添加了斜杠。如果您要删除它,评论 add trailing slash块行和取消注释 remove trailing slash块行