使用.htaccess将项替换为重写规则

使用.htaccess将项替换为重写规则,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我正在尝试使用“重写规则”来重写Url 我将使用此链接在我的博客中显示一篇新文章: https://www.example.com/article/how-to-visit-italy-in-winter 原始脚本(包括vars)是 这是我的.htaccess RewriteEngine on RewriteRule ^article/$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d

我正在尝试使用“重写规则”来重写Url

我将使用此链接在我的博客中显示一篇新文章:

https://www.example.com/article/how-to-visit-italy-in-winter
原始脚本(包括vars)是

这是我的.htaccess

RewriteEngine on
RewriteRule ^article/$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .$ https://www.example.com/post.php?idpost=$1 [L]
但它不起作用,浏览器重定向到:

我试图解决大约两天没有成功的问题:(
谢谢。

您的规则看起来不错,除了两件事。您的
$1
反向引用未定义且为空,因为您没有捕获任何URI。要捕获部分URI,您需要使用Regex捕获组
(.*)
。 2) 如果要以静默方式重定向url,则需要使用绝对路径而不是完整url作为重写规则的目标

RewriteEngine on
RewriteRule ^article/$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule article/(.+) /post.php?idpost=$1 [L]
谢谢这是完美的:)我需要研究正则表达式的条件。。我看到目标页面将显示为“”,是否也可以更改浏览器的url?(导航栏)。我可以在.taccess中添加其他代码吗?太多了:)
RewriteEngine on
RewriteRule ^article/$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule article/(.+) /post.php?idpost=$1 [L]