如何在htaccess中没有301重定向来替换url的子串?

时间:2017-06-19 15:19:03

标签: .htaccess mod-rewrite url-rewriting

我有一个使用此结构的网站:http://mywebsite.io/blog-post/post.php?path=example但我希望用户能够使用http://mywebsite.io/blog/example

访问此链接

所以我基本上试图用/blog/

替换/blog-post/post.php?path=

现在我有这个.htaccess文件......

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

所有这一切都将我从http://mywebsite.io/blog/post?path=example重定向到http://mywebsite.io/blog/post.php?path=example。所以,它基本上添加了扩展名。

我不是在寻找301重定向。我希望这可以安静地将用户重定向到正确的URL。我该怎么做呢?

1 个答案:

答案 0 :(得分:0)

这样做:

RewriteEngine On

RewriteRule ^blog/([\w-]+)/?$ blog-post/post.php?path=$1 [NC,L,QSA]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]