regex - 正则表达式:“Mod Rewrite”从“通配符”到地址的所有内容,而不更改地址?
问题描述
我真的不知道怎么写标题。发帖前我改了好几次。但请随意将其更改为最合适的问题。
我也不敢相信我已经找不到我想要的这个非常基本的事情的答案。我在这里和谷歌上都进行了搜索,但找不到任何可以回答这个问题的东西。
所以我有这个默认的 WordPress .htaccess 代码:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
但我想补充的是,所有路径都/cv/
以显示/cv/ 的页面开头的可能性。所以就像一个通配符之后,就像/cv/*
.
我尝试了几个版本:
RewriteRule /cv/.+ /cv/ - [L]
但没有一个奏效。我尝试的大多数事情都将我重定向到“找不到页面”页面。但有些只是重定向回/cv/。但是我希望whatevers'-after-/cv/ 应该留在那里。因此,如果地址是 example /cv/hello
,它应该仍然/cv/hello
在地址中,但显示的页面应该是 /cv/。
不要认为这应该是那么困难。我错过了什么?
解决方案
好的,我现在设置了一个测试,并获得以下命令以使 domain.com/cv/hello 重定向到 domain.com/cv 但保留 URL
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} \/cv\/(.+)$ [NC]
# make sure to exit here, if there already was a redirect (to prevent endless redirecting)
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^.*$ /cv/%1 [NC,P,R=301,L]
“魔术”是FollowSymlinks,使用P告诉 apache 代理传递重定向,以便 URL 保持不变,并检查是否已经重定向到当前 URL 以避免无休止的重定向
推荐阅读
- android - 通过按下按钮动态添加 EditText
- r - 闪亮的 UI 布局
- c++ - 使用 'this->' 访问成员变量的性能
- python - 如何在 Django 中使用 for 循环创建表
- ios - iframe 在固定 div 内的 ios 上滚动不起作用
- ansible - 无法在 Ansible 中使用 Sudo 运行命令
- python - VSCode 与 Python 和 Cygwin
- .net - 推文中的某些(不是全部)标点符号会导致 API 错误 32“无法验证您”
- scala - 得到一个错误的 JsValue 预期但 JsNode 提供
- node.js - 当我尝试发送 RichEmbed 时,Bot 发送一条空消息