Mod rewrite 无法使用.htaccess正确重定向

Mod rewrite 无法使用.htaccess正确重定向,mod-rewrite,apache2,rewrite,Mod Rewrite,Apache2,Rewrite,我正在尝试重定向旧站点上的以下路径: /apps /apps/about /apps/everything_else /site 使用以下重写规则将其复制到其他子域: RewriteRule ^site/?$ http://site.newsite.com [R=301,NC,L] 但是什么也没发生,这个规则有什么问题吗?另外,如何将应用添加到同一规则中 将进行以下工作: RewriteRule ^site/?|apps(/.)?$ http://site.newsite.com [R=30

我正在尝试重定向旧站点上的以下路径:

/apps
/apps/about
/apps/everything_else
/site
使用以下重写规则将其复制到其他子域:

RewriteRule ^site/?$ http://site.newsite.com [R=301,NC,L]
但是什么也没发生,这个规则有什么问题吗?另外,如何将应用添加到同一规则中

将进行以下工作:

RewriteRule ^site/?|apps(/.)?$ http://site.newsite.com [R=301,NC,L]
你可以试试这个:

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  ^/(apps|site).*   [NC]
RewriteRule .*   http://site.newsite.com/ [R=301,L]
静默映射:

http://site.oldsite.com/apps

http://site.oldsite.com/apps/anything

http://site.oldsite.com/site

http://site.oldsite.com/site/anything

致:

http://site.newsite.com/

由于OP在问题中没有提到该要求,因此没有向替换URL传递任何内容

假定字符串
应用程序
站点
是固定的


对于静默映射,请将
[R=301,L]
替换为
[L]

当我将第一条规则放置在它自己的位置时,第一条规则会起作用,但是当我尝试将第一条规则中的^site/?$替换为^apps/?$时,该规则会被忽略?您没有向替换URL传递任何内容,是故意的吗?如果是这样,你怎么知道传入的URL有
/apps
,或者
/site
或者其他什么?这是故意的,在/apps/和/site/下的所有内容都必须重定向到site.newsite.com,因为那里不再存在任何页面。这非常有用,原来的项目是在Zend框架下完成的,还有一个AppsController在.htaccess可以执行它的操作之前捕获请求…我认为这是可能的。htaccess会覆盖所有内容?如果在某个地方重定向到AppsController,解决方案是在之前插入此规则集。不管怎样,如果放在适当的地方,这些规则将满足您的需要。不,它不会覆盖所有内容,同样取决于.htaccess文件的位置。已将其排序,谢谢您的回答!很清楚,我肯定是这部电影的主角!