Apache 将静态url重定向到动态url
我正试图将现有流量重定向到一个重写过的站点,该站点现在在Apache服务器上使用带有RewriteRule的动态URL,例如 将whicher.com/directory/some\u页面重定向到whicher.com/directory/?m=some\u页面 每一个重写URL的例子都显示了从动态到静态的另一种方式,因此很难找到工作示例。到目前为止,我所尝试的一切要么不起作用,要么返回500服务器错误Apache 将静态url重定向到动态url,apache,.htaccess,mod-rewrite,redirect,rewrite,Apache,.htaccess,Mod Rewrite,Redirect,Rewrite,我正试图将现有流量重定向到一个重写过的站点,该站点现在在Apache服务器上使用带有RewriteRule的动态URL,例如 将whicher.com/directory/some\u页面重定向到whicher.com/directory/?m=some\u页面 每一个重写URL的例子都显示了从动态到静态的另一种方式,因此很难找到工作示例。到目前为止,我所尝试的一切要么不起作用,要么返回500服务器错误 最初的some_页面仍然存在,但现在它不再是一个索引文件,而是一堆jpg的,重要的是要理解,
最初的some_页面仍然存在,但现在它不再是一个索引文件,而是一堆jpg的,重要的是要理解,您提到的示例是重写,其中用户看到的URL被重写,以便应用程序获得它能理解的URL。然而,听起来您需要的是重定向,即客户在发送到应用程序之前将URL更改为新URL的位置 要从whicher.com/directory/?m=some\u页面重定向到whicher.com/directory/some\u页面,您可以这样做
RewriteBase /
RewiteCond %{QUERY_STRING} m=([^&]+) [NC]
RewriteRule ^directory/.? /directory/%1 [NC, L, R]
RewriteBase /
RewiteCond %{QUERY_STRING} m=([^&]+) [NC]
RewriteRule ^directory/.? /directory/%1 [NC, L]
RewriteBase /
RewriteRule ^directory/([^/]+)/? /directory/$1 [NC, L, R]
RewriteBase /
RewriteRule ^directory/([^/]+)/? /directory/$1 [NC, L]
要从whicher.com/directory/?m=some\u页面重写到whicher.com/directory/some\u页面,您可以这样做
RewriteBase /
RewiteCond %{QUERY_STRING} m=([^&]+) [NC]
RewriteRule ^directory/.? /directory/%1 [NC, L, R]
RewriteBase /
RewiteCond %{QUERY_STRING} m=([^&]+) [NC]
RewriteRule ^directory/.? /directory/%1 [NC, L]
RewriteBase /
RewriteRule ^directory/([^/]+)/? /directory/$1 [NC, L, R]
RewriteBase /
RewriteRule ^directory/([^/]+)/? /directory/$1 [NC, L]
要从which.com/directory/some_page/directory/?m=some_page重定向,您可以这样做
RewriteBase /
RewiteCond %{QUERY_STRING} m=([^&]+) [NC]
RewriteRule ^directory/.? /directory/%1 [NC, L, R]
RewriteBase /
RewiteCond %{QUERY_STRING} m=([^&]+) [NC]
RewriteRule ^directory/.? /directory/%1 [NC, L]
RewriteBase /
RewriteRule ^directory/([^/]+)/? /directory/$1 [NC, L, R]
RewriteBase /
RewriteRule ^directory/([^/]+)/? /directory/$1 [NC, L]
要从which.com/directory/some_page/directory/?m=some_page重写,您可以这样做
RewriteBase /
RewiteCond %{QUERY_STRING} m=([^&]+) [NC]
RewriteRule ^directory/.? /directory/%1 [NC, L, R]
RewriteBase /
RewiteCond %{QUERY_STRING} m=([^&]+) [NC]
RewriteRule ^directory/.? /directory/%1 [NC, L]
RewriteBase /
RewriteRule ^directory/([^/]+)/? /directory/$1 [NC, L, R]
RewriteBase /
RewriteRule ^directory/([^/]+)/? /directory/$1 [NC, L]
通过阅读你的问题,我不完全确定你想做什么,但上面的一个应该可以解决它 .htaccess陷入了一个循环,因为我无法让它处理查询字符串,很可能是因为我缺乏经验,所以我利用了导航到/directory/some_页面返回的403,该页面仍然存在,但没有索引文件。htaccess拒绝目录列表 403现在被发送到一个php错误页面,该页面使用页眉重定向到/directory/?m=some_页面的正确地址
我知道调用额外的页面会增加开销,但根据服务器日志,这种情况不会经常发生,而且可以正常工作。我需要从静态地址重定向到动态地址。现在已经分类了。