Apache htaccess-简单重写规则未触发
我试图匹配一个简单的规则来重写url,但它就是不匹配。我想重定向 到 这是我试过的Apache htaccess-简单重写规则未触发,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我试图匹配一个简单的规则来重写url,但它就是不匹配。我想重定向 到 这是我试过的 RewriteEngine On RewriteBase / RewriteRule ^thanks/$ https://example.com/thanks.php [R=302,L] RewriteEngine On RewriteRule ^thanks/$ https://example.com/thanks.php [R=302,L] RewriteEngine On RewriteBase /
RewriteEngine On
RewriteBase /
RewriteRule ^thanks/$ https://example.com/thanks.php [R=302,L]
RewriteEngine On
RewriteRule ^thanks/$ https://example.com/thanks.php [R=302,L]
RewriteEngine On
RewriteBase /
RewriteRule ^/(.*)/thanks/$ https://example.com/thanks.php [R=302,L]
RewriteEngine On
RewriteBase /
RewriteRule ^web/thanks/$ https://example.com/thanks.php [R=302,L]
还有许多微小的变化,但都没有触发。我尝试使用,它返回“未满足此规则”。我做错了什么?要重写,只需使用上一条规则
RewriteRule ^web/thanks/?$ /thanks.php [L]
有以下变化
- 不,这仅与某些相对URL相关
- 可选尾部斜杠
,如果您希望/?
或/web/thanky
都起作用/web/thanky/
- 没有域名,因为这可能会触发重定向而不是重写,请参阅
绝对URL
如果指定了绝对URL,mod_rewrite将检查主机名是否与当前主机匹配。如果是这样,则会剥离方案和主机名,并将生成的路径视为URL路径。否则,将对给定URL执行外部重定向。要强制外部重定向回当前主机,请参阅下面的[R]标志 - 没有标志,因为这会触发重定向而不是重写
模式
^.*谢谢/$
或^(.*)谢谢/$
也可以,但是它匹配任何以谢谢/
结尾的URL,比如/hellothanks/
,/areyousure谢谢/
,/some/path/thanking/
,…您真的想重定向而不是重写吗?“不触发”是什么意思?你得到了什么,404未找到,500服务器错误,或者其他什么?最后一个应该可以工作,顺便说一句。至少应该将客户端重定向到PHP文件。我得到了404,因为它实际上并不存在。不触发,我的意思是规则不匹配,我没有被重定向。是的,我想重写。因此url保持不变。我想当它工作时会发生什么?所以/web/thanky
不会重定向。当您输入/web/thanky/
(带尾随斜杠)时是否会被重定向?使用最后一条规则时。谢谢Olaf,我需要该操作,因此我将保留^(.*)谢谢/$
。我删除了R
以删除重定向