我正在尝试让apache将mysite.com/blog/<number>
的请求重写为文件/blog.php?page=<number>
。但是,使用与该路径匹配的正则表达式,不会重写URL,而是返回404,因为/blog/
是不存在的目录。
以下是我正在使用的RewriteRule
:
RewriteEngine On
RewriteRule ^blog/[0-9]+/? /blog.php?page=$1 [L]
我在很长一段时间没有使用过apache,所以我可能忘记了一些非常简单的项目,但是我看不出该规则有什么问题。
修改
来自httpd.conf
的重写规则:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
答案 0 :(得分:1)
您没有使用圆括号对^blog/
后的数字进行分组,这就是$1
为空的原因。
在DOCUMENT_ROOT/.htaccess
文件中尝试此规则:
RewriteEngine On
RewriteRule ^blog/([0-9]+)/?$ /blog.php?page=$1 [L,NC,QSA]