htaccess 从任何子域重定向到另一个域以及从目录重定向到查询 URL

发布于 2024-11-02 05:25:15 字数 566 浏览 0 评论 0原文

我尝试使用 htaccess 将任何子域和一个域的根重定向到另一个域。 例如,

anysub.mysite.com 或 mysite.com 重定向到 www.anotheriste.com

,mysite.com/stuffhere 重定向到 www.anothersite.com/feed?v=stuffhere

因此,任何不是子目录的内容都会重定向到其他域,并且任何子目录都会被重定向到带有查询字符串的 URL。好像看不懂啊一个重写规则会覆盖另一个。

编辑: 这就是我要做的工作

Options +FollowSymlinks 
RewriteEngine on
RewriteRule ^$ http://www.site.com [R=301,L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteCond  %{REQUEST_URI} ^/*\/?
RewriteRule ^(.*)$ http://www.site.com/feed?v=$1 [R=301,L]

Im trying to use htaccess to redirect any subdomain and the root of one domain to another domain.
example

anysub.mysite.com or mysite.com redirects to www.anotheriste.com

and also mysite.com/stuffhere to www.anothersite.com/feed?v=stuffhere

So anything that is not a subdirectory gets redirected to the other domain and anything that is a subdirectory gets redirected to the URL with the query string. Can't seem to get it. One rewrite rules overwrites the other.

Edit:
This is what I got to work

Options +FollowSymlinks 
RewriteEngine on
RewriteRule ^$ http://www.site.com [R=301,L]

RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteCond  %{REQUEST_URI} ^/*\/?
RewriteRule ^(.*)$ http://www.site.com/feed?v=$1 [R=301,L]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

慵挽 2024-11-09 05:25:15

尝试将这些规则放入您的 .htacccess 文件中:

RewriteEngine on
Options +FollowSymlinks -MultiViews

# handles http redirect sub-dir
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{SERVER_PORT} =80
RewriteCond %{HTTP_HOST} ^(.+\.)?mysite\.com$ [NC] 
RewriteRule ^/?(.*)$ http://www.anotheriste.com/feed?v=$1 [R=301,L,QSA,NE]

# handles http redirect non sub-dir
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{SERVER_PORT} =80
RewriteCond %{HTTP_HOST} ^(.+\.)?mysite\.com$ [NC] 
RewriteRule ^/?(.*)$ http://www.anotheriste.com/$1 [R=301,L,QSA,NE]

# handles https redirect sub-dir
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{SERVER_PORT} =443
RewriteCond %{HTTP_HOST} ^(.+\.)?mysite\.com$ [NC] 
RewriteRule ^/?(.*)$ https://www.anotheriste.com/feed?v=$1 [R=301,L,QSA,NE]

# handles https redirect non sub-dir
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{SERVER_PORT} =443
RewriteCond %{HTTP_HOST} ^(.+\.)?mysite\.com$ [NC] 
RewriteRule ^/?(.*)$ https://www.anotheriste.com/$1 [R=301,L,QSA,NE]

R=301 将使用 https 状态 301 进行重定向

L 将制定最后一条规则

NE 用于无转义查询字符串

QSA 将附加您现有的查询参数

$1 是您的 REQUEST_URI

Try putting these rules in your .htacccess file:

RewriteEngine on
Options +FollowSymlinks -MultiViews

# handles http redirect sub-dir
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{SERVER_PORT} =80
RewriteCond %{HTTP_HOST} ^(.+\.)?mysite\.com$ [NC] 
RewriteRule ^/?(.*)$ http://www.anotheriste.com/feed?v=$1 [R=301,L,QSA,NE]

# handles http redirect non sub-dir
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{SERVER_PORT} =80
RewriteCond %{HTTP_HOST} ^(.+\.)?mysite\.com$ [NC] 
RewriteRule ^/?(.*)$ http://www.anotheriste.com/$1 [R=301,L,QSA,NE]

# handles https redirect sub-dir
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{SERVER_PORT} =443
RewriteCond %{HTTP_HOST} ^(.+\.)?mysite\.com$ [NC] 
RewriteRule ^/?(.*)$ https://www.anotheriste.com/feed?v=$1 [R=301,L,QSA,NE]

# handles https redirect non sub-dir
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{SERVER_PORT} =443
RewriteCond %{HTTP_HOST} ^(.+\.)?mysite\.com$ [NC] 
RewriteRule ^/?(.*)$ https://www.anotheriste.com/$1 [R=301,L,QSA,NE]

R=301 will redirect with https status 301

L will make last rule

NE is for no escaping query string

QSA will append your existing query parameters

$1 is your REQUEST_URI

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文