0

我已经进行了几次搜索并遵循教程,但我似乎无法让以下工作。我想使用 .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 文件。

我猜想在那里获得实际的文章名称,我必须传递一个包含名称的参数,但即使在当前示例中,也没有发生任何事情。任何援助将不胜感激!谢谢你。

4

1 回答 1

0

从匹配模式中删除前导斜杠。

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/news/details/ [NC]
RewriteRule ^news/([^/]+)/?$ /news/details/?newsID=$1 [L]

原因: URI.htaccess中的前导斜杠不匹配。

阅读有关它的更多信息:Apache mod_rewrite 简介

PS:尽管请记住,重写的 URI 将是/news/details/?newsID=name-of-news-article

编辑

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+test\.htm[?\s?] [NC]
RewriteRule ^ /hello? [R=302,L]
于 2013-10-11T16:39:21.717 回答