Php 为具有不同数量查询字符串的链接重写URL。htaccess

Php 为具有不同数量查询字符串的链接重写URL。htaccess,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我正在工作的网站有一个新闻部分,在页面中央显示最新的新闻文章,在右侧边栏显示完整的文章列表 我能够在代码中创建“漂亮”的链接,将文章标题附加到链接中,来自: website.com/news.php?id=4 到 website.com/news/4/news article No.4 使用此.htaccess代码,我可以从URL中省略www.,还可以从我的页面中删除.php文件扩展名,并重写URL以提供适当的新闻文章: ErrorDocument 404 default ErrorDocume

我正在工作的网站有一个新闻部分,在页面中央显示最新的新闻文章,在右侧边栏显示完整的文章列表

我能够在代码中创建“漂亮”的链接,将文章标题附加到链接中,来自:

website.com/news.php?id=4

website.com/news/4/news article No.4

使用此.htaccess代码,我可以从URL中省略
www.
,还可以从我的页面中删除
.php
文件扩展名,并重写URL以提供适当的新闻文章:

ErrorDocument 404 default
ErrorDocument 500 default

Options +FollowSymLinks -MultiViews
RewriteEngine On

# omit www.
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301,NE]

# To externally redirect /dir/file.php to /dir/file
RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,NE,L]

# rewrite pretty link to fetch news article
# was originally ^news/(\d+)/?$ added .* to allow the
# title to be ignored
RewriteRule ^news/(\d+)/?.*$ news.php?id=$1 [NC,L,QSA]

# To internally redirect /dir/file to /dir/file.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^([^.]+?)/?$ $1.php [L]
所有这些都非常有效,在这里有很多了不起的人的帮助。现在是有趣的部分

侧边栏顶部有两个链接,新闻主页和特色新闻项目。新闻主页链接是一个不需要动脑筋的链接:

其内部重定向到:

website.com/news

在上面的.htaccess代码中

特色新闻项链接有一个查询字符串:

我想重定向到:

news.php?type=featured

我猜我需要一个单独的重写规则用于特色新闻项目链接,我尝试了这个,但没有成功:

# test to add 'featured' in top sidebar link
RewriteRule ^news/(\w+)/?$ news.php?type=$1 [NC,L,QSA]
这条重写规则似乎与内部重定向或其他类似的规则相冲突。这一切我还是有点难以理解

此外,我相信我还需要为特色新闻条边栏链接制定另一条重写规则,类似于这些内容,但我还无法测试它,因为我似乎无法传递
type=Featured
查询字符串值:

# test to add 'featured' to sidebar links
RewriteRule ^news/(\w+)/(\d+)/?.*$ news.php?type=$1&id=$2 [NC,L,QSA]
所以问题是,我是否必须为新闻主页、特色新闻项目和侧边栏链接制定单独的重写规则


非常感谢。

重定向到同一个页面,在这个页面中检查是否有特定的新内容

更容易解决的方法…有时时间比“艰难的方法”更重要