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

时间:2015-06-30 07:19:53

标签: apache .htaccess mod-rewrite

我有网址

  

IPADDR / opensys /碱/

和其他一些相似的,比如

  

IPADDR / opensys /碱/ something.php?OLOL =是的

我想从网址中删除" opensys"并显示在那里" center",我想看到这个链接工作:

  

IPADDR /中心/碱/

  

IPADDR /中心/碱/ something.php?OLOL =是的

我用符号链接做了,但是它不好,因为系统非常困难,而且使用符号链接,一些插件不起作用,我只想用.htaccess来做,一切都会好的。

我的htaccess是:

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

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

重定向工作正常,但我看到404,重写规则无法正常工作。为什么呢?

2 个答案:

答案 0 :(得分:0)

您还需要处理.htaccess文件中的/ center / base / now,因为您必须先处理opensys。像这样的东西 -

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

答案 1 :(得分:0)

您可以在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]