所以我有这个Apache重写规则:
RewriteRule ^news.php?viewStory=([0-9]+)$ index.php?page=news&viewStory=$1
我需要改变网站的结构,我需要考虑旧的结构。
除了一件事之外,一切正常。我需要它来解析?中间部分的字符(^news.php?...
)字面意思 - 不要将其视为特殊字符。但我希望其他特殊字符正常工作。
这样做的正确方法是什么?我无处可寻找任何有效的解决方案。
答案 0 :(得分:2)
您不能以这种方式使用查询字符串。您需要在条件中使用查询字符串来检查它是否存在。然后在规则中使用捕获的反向引用。让我知道它对你有用。
RewriteEngine On
RewriteCond %{QUERY_STRING} ^viewstory=([0-9]+)$
RewriteRule ^news\.php$ index.php?page=news&viewStory=%1 [R=301,L]