0

我正在尝试将旧式链接从旧网站重定向到 php 中的新式链接。

我正在使用:

RewriteEngine on
    RewriteBase /
    RewriteRule s\.cfm?id=5$ http://mysite.com/article5.php [B,L,R=301]
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

但是,如果我只使用s.cfm? 一切正常并重定向到 article5.php。但是如果我尝试重定向 id=5 部分,我会找不到页面。

我只尝试了s.cfm?id ,它导致了 htaccess 错误。所以你在问号后面放的任何东西?...都会导致问题,我不知道为什么。

4

1 回答 1

1

您无法匹配 a 中的查询字符串RewriteRule,只能通过规则本身发送 URI 路径。如果您需要匹配查询字符串,请%{QUERY_STRING}在 a 中使用 var RewriteCond

RewriteCond %{QUERY_STRING} ^id=5$
RewriteRule ^/?s\.cfm$ http://mysite.com/article5.php [L,R=301]

其他一切都很好。

于 2012-10-30T20:30:32.053 回答