简单的 RewriteRule 不起作用

简单的 RewriteRule 不起作用

我有以下网址:

http://www.mysite.com/test/index.php?topic=rules

我想将其重写为:

http://www.mysite.com/test/topic/rules

我尝试了以下操作:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^topic/([a-zA-Z0-9]+)/$ index.php?topic=$1

什么都没做。我使用第三方网站生成此重写代码,所以可能不正确,我不知道。Apache 中是否有任何原因可能导致此操作不起作用?

答案1

您在 URL 中遗漏了/test/。规则中的前导 ^ 表示“路径的开始”。您可能需要:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^/test/topic/([a-zA-Z0-9]+)/$ /test/index.php?topic=$1

或者类似的东西。

答案2

您无法匹配RewriteRule中的查询字符串,因此您需要使用RewriteCond。

RewriteCond %{QUERY_STRING} topic=(.*)
RewriteRule test/index.php test/topic/%1? [L]

相关内容