Regex 在中心重写URL

Regex 在中心重写URL,regex,apache,.htaccess,mod-rewrite,url-rewriting,Regex,Apache,.htaccess,Mod Rewrite,Url Rewriting,我有这个原始网址 http://localhost:88/coloragon/welcome.php 通过使用以下规则 RewriteRule ^.*hi/?$ welcome.php RewriteRule ^.*mycoloragon.*/?$ coloragon 我能够访问上面的原始网址使用以下重写的网址 http://localhost:88/coloragon/hi http://localhost:88/mycoloragon/welcome.php 但是 通过使用以下

我有这个原始网址

http://localhost:88/coloragon/welcome.php
通过使用以下规则

RewriteRule ^.*hi/?$  welcome.php
RewriteRule ^.*mycoloragon.*/?$  coloragon
我能够访问上面的原始网址使用以下重写的网址

http://localhost:88/coloragon/hi
http://localhost:88/mycoloragon/welcome.php
但是

通过使用以下规则

RewriteRule ^.*hi/?$  welcome.php
RewriteRule ^.*mycoloragon.*/?$  coloragon
为什么我不能使用以下重写的url访问原始url

http://localhost:88/coloragon/hi
http://localhost:88/mycoloragon/welcome.php

由于您是从“/coloragon/”目录使用此规则:

RewriteRule ^.*mycoloragon.*/?$ coloragon
因此
http://localhost:88/mycoloragon/welcome.php
无法工作,因为它会将您的URL重写为:
http://localhost:88/coloragon/mycoloragon/

请记住
。htaccess
是根据目录指令进行的

解决方案:如果需要
http://localhost:88/mycoloragon/welcome.php
URL,然后在root.htaccess中使用此规则:

RewriteRule ^mycoloragon(/.*)?$ /coloragon$1 [L,NC]

据我所知,您无法访问原始url。htaccess规则完全覆盖了原始url到新url。听起来很有说服力。但在我将htaccess链接置于以下文本
RewriteEngine上(然后是下一行)之后,将RewriteRule^mycoloragon/?$/coloragon[L,NC]
置于根目录<代码>http://localhost:88/mycoloragon/welcome.php仍然没有令人惊讶地写入规则
^mycoloragon/?$/coloragon[L,NC]
正在重定向此url
http://localhost:88/mycoloragon/welcome.php
http://localhost:88/coloragon/
而不是将其翻译成
http://localhost:88/coloragon/welcome.php
我的规则中没有使用重定向标志。你试过更新规则吗?我需要参加一个会议,一小时后我会检查这个帖子。谢谢。现在工作正常了。这是一些缓存问题