【发布时间】:2013-10-11 16:37:43
【问题描述】:
我已经进行了多次搜索并遵循教程,但我似乎无法让以下工作。我想使用 .htaccess mod_rewrite 创建 SEO 友好的 URL。我的示例将用于显示新闻故事。当前的url结构是这样的:
http://www.website.com/news/details/?newsID=40
我想把它改成这样:
http://www.website.com/news/name-of-news-article/
这是我目前用于重写的 .htaccess 文件:
RewriteEngine on
RewriteRule ^news/([^/]+)/?$ /news/details/?newsID=$1 [L]
只要在 .htaccess 文件中添加这个,URL 就不会发生任何事情,它只是保持原来的样子。我知道该站点可以读取 .htaccess 文件。
我猜要在其中获取实际的文章名称,我必须传递一个包含名称的参数,但即使在当前示例中,也没有发生任何事情。任何援助将不胜感激!谢谢。
【问题讨论】:
-
您必须在应用程序中处理这种类型的重写,因为 url 存根或友好 url 对 apache 不可用。此外,您拥有的 RewriteRule 正在从其他东西重写到当前的 URL 结构。阅读这份备忘单cs.tut.fi/~jkorpela/perl/regexp.html
-
作为后续,^ 表示字符串的开头,因此您不能将其包含在 [] 中。您正在尝试匹配一个或多个 ^/ 实例,这只是您的域之后的第一个斜杠。该规则实际上按预期工作,只是没有匹配,所以它什么都不做。
标签: php .htaccess mod-rewrite