wordpress - 使用 HTACCESS 进行重定向,包括 GET 参数
问题描述
我按原样定义了一个特定的 .htaccess,以便将所有流量从根文件夹重新路由到子文件夹中的相同 URL,但子域除外。
这是我的文件:
#RewriteEngine on
#RewriteRule ^(.*)$ http://www.mydomain.fr/blog/$1 [R=301,QSA]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^joe\.mydomain\.fr$ [NC]
RewriteCond %{HTTP_HOST} !^lab\.mydomain\.fr$ [NC]
RewriteCond %{REQUEST_URI} !^joe(.*)
RewriteCond %{REQUEST_URI} !^lab(.*)
RedirectMatch ^/$ http://www.mydomain.fr/blog/
</IfModule>
该文件完全符合我的要求:www.mydomain.fr/wp-admin
例如,当我输入类似的内容时,它将重定向到www.mydomain.fr/blog/wp-admin
,但会排除子域joe.mydomain.fr
并lab.mydomain.fr
从重定向中排除。
但是,发生的情况是,如果我转到joe.mydomain.fr?test=1
,服务器只会将我重定向到,joe.mydomain.fr
但 GET 参数会消失。
我怎样才能避免这种情况?
我尝试用 or 替换[NC]
,[QSA]
但[R=301,QSA]
出现内部服务器错误。
谢谢。
解决方案
在花了一天时间记录 .htaccess 文件的实际工作方式之后,我终于能够使用以下文件解决我的问题,灵感来自 Abhishek Gurjar 的文件:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /s
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^joe\.mydomain\.fr$ [NC]
RewriteCond %{HTTP_HOST} !^lab\.mydomain\.fr$ [NC]
RewriteCond %{HTTP_HOST} !^blog\.mydomain\.fr$ [NC]
RewriteCond %{REQUEST_URI} !/joe
RewriteCond %{REQUEST_URI} !/lab
RewriteRule ^(.*)$ http://www.mydomain.fr/blog/$1 [R=301]
</IfModule>
仅供参考,我的提供商 1&1 显然必须使用前 3 行...
我改变的是 REQUEST_URI 从!^joe(.* )和!^lab(.*)到!/joe和!/lab然后排除 blog.mydomain.fr URL 以避免 blog.mydomain 出现问题.fr/joe 或 blog.mydomain.fr/lab 如果有一天我使用它们。
最后,我不得不将我的 1&1 客户端界面中的子域重定向到我的网站空间的子文件夹,而不是硬的 URL,这意味着:
- 我没有将 joe.mydomain.fr 重定向到http://www.mydomain.fr/joe,而是将其重定向到 /www/joe/
现在,该配置允许我输入诸如 joe.mydomain.fr?dnt=1 之类的 URL,同时重定向到http://www.mydomain.fr/joe?dnt=1,这正是我想要做的。
我希望这对其他人有帮助。谢谢您的帮助。
推荐阅读
- string - 如何将字符串转换为双精度,以保持字符串中表示的数字完全相同
- django - 使用 drf-nested-routers 找不到页面错误
- android - Android X onMenuItemSelected
- javascript - 尝试动态更改导航栏中的“活动”类 - Node.js/Express/Handlebars
- java - 在 Java 中使用 WEKA
- javascript - 路由导航方法未重定向到目标组件
- node.js - expressjs 是否能够同时为多个用户提供文件?
- angular - angular4 Cannot find a differ supporting object '[object Object]' of type 'object'. NgFor only supports binding to Iterables such as Arrays
- javascript - 在不提供输入的情况下调用迭代器函数会产生奇怪的行为?
- c# - 在 Post 请求中发送 DateTime