尝试重写如下所示的链接:
/content/about-me
...对此:
/content/about-me.html
这对我正在做的事情是必要的。我不断收到此 htaccess 规则的内部服务器错误:
RewriteRule ^content/(.*) /content/$1.html [NC,L]
知道我做错了什么吗?网络上的例子很多,但不能完全正确。
尝试重写如下所示的链接:
/content/about-me
...对此:
/content/about-me.html
这对我正在做的事情是必要的。我不断收到此 htaccess 规则的内部服务器错误:
RewriteRule ^content/(.*) /content/$1.html [NC,L]
知道我做错了什么吗?网络上的例子很多,但不能完全正确。
您的重写规则(模式)太宽泛,会捕获已经重写的 URL。覆盖已经重写的 URL 将导致无限的重写循环,Apache 会智能地检测并以 500 错误中止此类请求。
例如:
/hello/pink-kitten
/hello/pink-kitten.html
/hello/pink-kitten.html.html
/hello/pink-kitten.html.html.html
更正确的方法(少数可能的方法之一) - 将在重写之前检查此类 html 文件是否存在:
# add .html file extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^content/(.+)$ /content/$1.html [L]