gpt4 book ai didi

apache - 如何使用 .htaccess 将/wp-admin/admin.php?page=something 重写为/wp-admin/something

转载 作者:行者123 更新时间:2023-12-04 07:53:36 36 4
gpt4 key购买 nike

我正在尝试配置我的 .htaccess,以便当有人导航到路径 /wp-admin/admin.php?page=something 时,路径 /wp-admin/something显示在浏览器中,内容来自/wp-admin/admin.php?page=something送达。
如果我导航到 /wp-admin/admin.php?page=something该页面已正确提供。然而,/wp-admin/something不提供内容,而是显示我网站中的默认 404 页面。
我的 .htaccess 配置:

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?wp-admin/?$ /wp-admin/admin.php?page=$1 [L]

RewriteBase /
ReWriteCond %{ENV:ENVIRONMENT} !^development$
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R,L]
</IfModule>

RedirectMatch 301 ^/kundeoplysninger https://signup.kredslob.dk/kundeoplysninger
RedirectMatch 301 ^/mobilepay /

# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

最佳答案

when someone navigates to the path /wp-admin/admin.php?page=something, the path /wp-admin/something is shown in the browser


这需要外部重定向。对于独立输入(或遵循外部链接)到“旧”( page=something )URL 的用户来说,这是可以的,但必须更新任何内部链接以指向所需的规范 URL,即。 /wp-admin/something .
RewriteEngine 之后立即添加以下内容指示:
# Redirect direct requests for "/wp-admin/admin.php?page=something" to "/wp-admin/something"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^page=([^&]+)
RewriteRule ^(wp-admin)/admin\.php$ /$1/%1 [QSD,R=301,L]
$1反向引用包含从 URL 路径中捕获的“wp-admin”(简单地保存重复)和 %1反向引用包含查询字符串中的“某物”,在前面的 RewriteCond 中捕获。指示。 QSD从重定向响应中删除查询字符串需要标志(Apache 2.4+)。
支票对 REDIRECT_STATUS环境变量是必要的,以防止重写的请求(见下文)被重定向。仅重定向来自客户端的直接请求。

and the content from /wp-admin/admin.php?page=something is served


紧接上述重定向之后,我们需要在内部重写来自请求 /wp-admin/something 的请求回到服务器理解的格式,即。 /wp-admin/admin.php?page=something .
在上述重定向之后添加以下内容。
# Rewrite "/wp-admin/something" back to "/wp-admin/admin.php?page=something"
RewriteRule ^(wp-admin)/([^.]+)$ $1/admin.php?page=$2 [L]
捕获正则表达式 ([^.]+)排除点,这样它自然避免了形式 admin.php 的匹配请求,从而防止重写循环。另一种方法是避免重写映射到物理文件的请求,但文件系统检查相对昂贵,因此最好尽可能避免。

关于apache - 如何使用 .htaccess 将/wp-admin/admin.php?page=something 重写为/wp-admin/something,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66820945/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com