SEO友好的URL无法使用.htaccess

时间:2013-07-25 12:30:19

标签: php regex .htaccess url

我正在尝试使用.htaccess通过使用下面的RewriteRule实现一个SEO友好的URL

RewriteRule ^n/article/([a-zA-Z0-9]+)/$ article.php?title=$1

actaul网址如下所示

http://localhost/n/article.php?title=this-is-the-first-news-article

但我希望它看起来像这样:

http://localohst/n/article/this-is-the-first-news-article

当我应用上面的RewiteRule时,它不会更改为所需的URL

3 个答案:

答案 0 :(得分:2)

这应该这样做。你错过了n。不知道为什么你需要单词标题。

RewriteRule ^n/article/title/([a-zA-Z0-9]+)/$ article.php?title=$1

答案 1 :(得分:1)

您必须先捕获查询字符串。您不能使用RewriteRule执行此操作,因为它们忽略查询字符串。我们在这里使用[R]重定向。如果这对您有用,并且旧URL可能存储在某处作为链接,那么您可能需要指定[R=301]。请务必删除您网站上的所有旧式链接(包含我们正在重写的上一个链接格式),这样您就不会因未更新链接而受到处罚。

RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} title=([^&]+)
RewriteRule ^n/article.php n/article/%1? [R,L]

如果您的网站需要格式化原始版本,您可能还需要在第一个规则之后执行此操作。此规则会将URL重新定向回原始状态,而不会将其显示给最终用户:

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

答案 2 :(得分:0)

它将是RewriteRule ^ n / article / title /([a-zA-Z0-9] +)/ $ article.php?title = $ 1