Php 如何使用动态生成的URL重定向301?

Php 如何使用动态生成的URL重定向301?,php,apache,.htaccess,mod-rewrite,redirect,Php,Apache,.htaccess,Mod Rewrite,Redirect,在你说做一些研究之前,我有一个问题,我知道如何用301重定向 然而,这是一个相当具体的问题 因此,我有一个有效的Mod重写: RewriteRule ^/news/article/([^/]*)/$ /news/article.php?title=$1 [L] 这会将url输出到/news/article/title/,但是我最近想删除尾部的斜杠 因此,url读取/news/article/title,这很容易做到: RewriteRule ^/news/article/([^/]*)$ /n

在你说做一些研究之前,我有一个问题,我知道如何用301重定向

然而,这是一个相当具体的问题

因此,我有一个有效的Mod重写:

RewriteRule ^/news/article/([^/]*)/$ /news/article.php?title=$1 [L]
这会将url输出到/news/article/title/,但是我最近想删除尾部的斜杠

因此,url读取/news/article/title,这很容易做到:

RewriteRule ^/news/article/([^/]*)$ /news/article.php?title=$1 [L]
但是现在当有人进入/news/article/title/ 所以我的问题是,有没有一种方法可以让我们重定向301,这样当用户输入/news/article/title/时,他们就会被定向到/news/article/title


请记住,我希望这适用于所有动态生成的URL。

使用
R=301
标记,如下所示:

 RewriteRule ^/news/article/([^/]*)/$ /news/article/$1 [R=301]
 RewriteRule ^/news/article/([^/]*)$ /news/article.php?title=$1 [L]

有关标志的更多详细信息,请参见。实际上,您应该将尾部斜杠设置为可选:

RewriteRule ^/?news/article/([^/]*)/?$ /news/article.php?title=$1 [L,QSA]
要从URL中删除尾随的
/
斜杠,请使用以下重定向规则:

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

我真的很喜欢可选的斜杠方法!但我觉得移除是最好的解决方案