Apache 我的mod重写失败在哪里?

Apache 我的mod重写失败在哪里?,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我有网址 ipaddr/opensys/base/ 还有一些类似的,比如 ipaddr/opensys/base/something.php?olol=yesp 我想从url“opensys”中删除并在那里显示“center”,我想看到这些链接起作用: ipaddr/中心/基础/ 及 ipaddr/center/base/something.php?olol=yesp 我是用symlinks做的,但不太好,因为系统非常困难,而且symlink的一些插件不起作用,我只想用.htaccess来做,毕

我有网址

ipaddr/opensys/base/

还有一些类似的,比如

ipaddr/opensys/base/something.php?olol=yesp

我想从url“opensys”中删除并在那里显示“center”,我想看到这些链接起作用:

ipaddr/中心/基础/

ipaddr/center/base/something.php?olol=yesp

我是用symlinks做的,但不太好,因为系统非常困难,而且symlink的一些插件不起作用,我只想用.htaccess来做,毕竟一切都会好的

我的访问权限是:

但我希望看到的链接不起作用,为什么

RewriteEngine on
RewriteRule ^/opensys/base/(.*)$ /center/base/$1 [L]
RedirectMatch 301  ^/opensys/base/(.*)$ /center/base/$1

重定向工作正常,但我看到404,重写规则不起作用。为什么?

您还需要处理.htaccess文件中的/center/base/now,因为您之前必须处理opensys。类似这样的事情-

RewriteRule ^/opensys/base/(.*)$ /center/base/$1 [R=301]
RewriteRule ^/center/base/(.*)$ /index.php?args=$1 [QSA,L]

您可以在root.htaccess中使用此代码:

RewriteEngine on

RewriteCond %{THE_REQUEST} /opensys/(base/\S*)\s [NC]
RewriteRule ^ /center/%1 [R=301,L,NE]

RewriteRule ^center/(base/.*)$ opensys/$1 [L,NC]