小编Let*_*ety的帖子

RedirectMatch 如何匹配任何单词但不匹配索引和什么都没有

我已将网站中的许多网址从:/folder/page.php移至: /folder/page/

现在我想将旧 url 重定向到新 url,所以我添加了.htaccess这个规则:

RedirectMatch permanent /folder/(.*)\.php https://www.site.it/folder/$1/
Run Code Online (Sandbox Code Playgroud)

但它不起作用,此规则首先重定向到/folder/page/然后再次重定向到/folder/page/index/

所以我试过这个:

RedirectMatch permanent /folder/(?!index)\.php https://www.site.it/folder/$1/
Run Code Online (Sandbox Code Playgroud)

但它的工作原理类似于上述规则。

我也测试过:

RedirectMatch permanent /folder/(?!index)(.*)\.php https://www.site.it/folder/$1/
Run Code Online (Sandbox Code Playgroud)

又一样。

.htaccess只在根文件夹中使用,这里是新规则之前的内容:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)

这些规则需要将http流量重定向到https我使用的网络托管服务并由其建议。

我还测试了错误的RedirectMatch规则,没有任何其他规则。

如何重定向所有页面,除了index.php

这是 url 列表和所需的行为:

RedirectMatch permanent /folder/(.*)\.php https://www.site.it/folder/$1/
Run Code Online (Sandbox Code Playgroud)

请不要建议使用 mod_rewrite,因为它不是此处描述的最佳实践。

regex apache .htaccess redirect

13
推荐指数
2
解决办法
1100
查看次数

标签 统计

.htaccess ×1

apache ×1

redirect ×1

regex ×1