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文件的位置。已将其排序,谢谢您的回答!很清楚,我肯定是这部电影的主角!