0

我想重定向我网站的一些页面。

这些页面具有以下格式: xxxx.html(x=digit,最多 4 位),例如 1.html、24.html、6875.html 等 我想将这些页面重定向到以下格式:index.php?id =xxx。

我已经应用的解决方案是 htaccess 文件中的以下行:

RewriteRule ([0-9]+)\.html$ /index.php?id=$1  [R=302,QSA,L]

重定向工作完美,但问题是我想将此规则限制为最多 4 位的页面,例如 6789.html、234.html。例如,我不希望将规则应用于页面 55555.html。

4

1 回答 1

1

这可能是您正在寻找的:

RewriteEngine on
RewriteRule ^/?([0-9]{1,4})\.html$ /index.php?id=$1  [R=302,QSA,L]

这种稍微修改的模式将在 http 服务器主机配置中工作,同样在动态配置文件(.htaccess样式文件)中工作。


还有一个一般提示:您应该始终喜欢将此类规则放在 http 服务器主机配置中,而不是使用动态配置文件(“.htaccess”)。众所周知,这些文件容易出错,难以调试,而且它们确实会降低服务器的速度。它们仅在您无法控制主机配置的情况下(阅读:非常便宜的托管服务提供商)或如果您的应用程序依赖于编写自己的重写规则(这是一个明显的安全噩梦)提供它们作为最后一个选项)。

于 2017-03-16T10:08:14.940 回答