.htaccess mod_rewrite - 如何将“/page.html”和“/page/”重定向到:“/page”?

问题描述 投票:0回答:1

我的 .htaccess 文件需要一些帮助。 我已经搞砸了大约一周但无法让它工作.. 我在网上搜索了解决方案,但没有任何内容能真正解决我的问题。

一般来说,输入:

website.com/info.html?page=12
应显示:
website.com/info/12
反之亦然:
website.com/info/12
应该服务:
website.com/info.html?page=12

类似地,没有 QUERY_STRING 部分:

website.com/info.html
应显示:
website.com/info
website.com/info
应该服务:
website.com/info.html

但是!

website.com/info/
(仅当后面没有任何内容时)应重定向到:
website.com/info

我怎样才能实现这个目标? 它应该很简单,但我还无法理解它。 任何提示都非常感谢!

.htaccess mod-rewrite
1个回答
0
投票

我首先会重定向所有

.html
扩展名,使其不在 URL 中显示。

如果后面有数字,您可以重定向 page=number

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.html$ /$1 [L,R=301] 

#redirect /number to ?page=number
RewriteRule ^info/([0-9]+)$ /info?page=$1 [L]

© www.soinside.com 2019 - 2024. All rights reserved.