Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 仅在特定条件下重写URL_.htaccess_Mod Rewrite_Url Rewriting_Rewrite - Fatal编程技术网

.htaccess 仅在特定条件下重写URL

.htaccess 仅在特定条件下重写URL,.htaccess,mod-rewrite,url-rewriting,rewrite,.htaccess,Mod Rewrite,Url Rewriting,Rewrite,我正试图创建一个重写规则,这几天我一直在努力 我的情况应该是,如果在authorbio之后的url中只找到一个单词,那么就保持原样。对于所有剩余的条件,它应该删除authorbio/ 下面示例中的条件2和3是通用的,可以很容易地完成,但应与示例中的条件#1一起完成 示例: 这应该保持原样: /mainblog/authorbio/authorname 应改为 /mainblog/authorbio/authorname 其中,这将从URL中删除AUTHORBIO /mainblog/auth

我正试图创建一个重写规则,这几天我一直在努力

我的情况应该是,如果在authorbio之后的url中只找到一个单词,那么就保持原样。对于所有剩余的条件,它应该删除authorbio/

下面示例中的条件2和3是通用的,可以很容易地完成,但应与示例中的条件#1一起完成

示例:

  • 这应该保持原样:

    /mainblog/authorbio/authorname

    应改为

    /mainblog/authorbio/authorname

  • 其中,这将从URL中删除AUTHORBIO

    /mainblog/authorbio/someblog/blogarticle

    应改为

    /mainblog/someblog/blogarticle

  • 这也将从URL中删除AUTHORBIO

    /mainblog/authorbio/

    应改为

    /主要博客


将此规则放入
/mainblog/.htaccess

RewriteEngine On
RewriteBase /mainblog/

RewriteRule ^authorbio/?$ /mainblog/ [NC,L,R]

RewriteRule ^authorbio/([^/]+/.+)$ $1 [NC,L,R]

谢谢我已经将它添加到现有的.htaccess规则的底部,并重新启动了apache,它无法工作,甚至无法满足任何条件。仅供参考:我正在使用wordpress MU设置和varnish作为缓存技术。在varnish中,我已经在使用一次重写,将/authors替换为/mainblog/authorbio。因此,对/authors/somename的任何请求都会以/mainblog/authorbio/somename的形式发送到wordpress。我已经通过打印请求URL验证了这一点……将它们放在现有规则之前。