问题描述
如果有人能帮助解决这个模组重写问题,我将不胜感激。多年来,我在我的 htaccess、apache 包含文件中都有这个,它工作得很好。
public void Configure(IApplicationBuilder app,IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseHttpsRedirection();
app.UseRouting();
app.UseCors();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
但最近它停止工作了。浏览器显示“未指定输入文件”。并且访问日志显示 404 响应代码必须满足上述条件的请求。
重写引擎已开启。这就是我目前的 htaccess mod_rewrite 规则
RewriteRule ^/article/([0-9]*).html$ /article/article.PHP?id=$1 [NC,L]
解决方法
根据您显示的示例/尝试,您能否尝试遵循 htaccess 规则。在测试您的 URL 之前,请确保将您的 htaccess 规则文件放在根目录中并清除浏览器缓存。
<IfModule mod_rewrite.c>
Options -MultiViews -Indexes
RewriteEngine On
RewriteBase /
##Rules for non-existing pages.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
##Rules for articile and relationship uris here.
RewriteRule ^(?:article|relationships)/([0-9]*)\.html/?$ article/article.php?id=$1 [NC,L]
##Rules for 404 handling.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(js|css|jpeg|jpg|gif|png|ico|map)(\?|$) 404error.php [L,NC]
</IfModule>