【问题标题】:Wordpress rewrite sensitive URL and files and avoid access to themWordpress 重写敏感的 URL 和文件并避免访问它们
【发布时间】:2020-03-30 13:13:49
【问题描述】:

我不知道这是否可能,否则我会在链接事物时遇到问题,但我目前正在努力解决 Wordpress wp-admin URL 和 wp-login.php 的 URL 重写问题

希望您能提供帮助,也许可以对我说,如果这个尝试可行的话。

目前的响应是,如果我 [F] 重写新的 url/文件也将被阻止。

这有点疯狂,尝试了很多事情。

# BEGIN WordPress
# Die Anweisungen (Zeilen) zwischen `BEGIN WordPress` und `END WordPress` sind
# dynamisch generiert und sollten nur über WordPress-Filter geändert werden.
# Alle Änderungen an den Anweisungen zwischen diesen Markierungen werden überschrieben.
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /wordpress/

    # BEGIN
    # Options +FollowSymLinks

    # works %{REDIRECT_IS_BACKEND}
    <If "%{REQUEST_URI} =~ m#^(.*?)/?backend/?(.*)$#">
        SetEnv IS_BACKEND "1"
    </If>

    #works %{REDIRECT_IS_LOGIN}
    <If "%{REQUEST_URI} =~ m#^(.*?)/login(.*)$#">
       SetEnv IS_LOGIN "1"
    </If>

     RewriteCond %{ENV:IS_LOGIN} !^1$
     RewriteCond %{SCRIPT_FILENAME} ^.*?/wp-login.php$
     RewriteRule ^.* - [F,L]

     #RewriteCond %{REQUEST_URI} ^(.*?)/backend/?(.*)
     #RewriteRule ^(.*?)/?backend/?(.*)$ $1wp-admin$2 [NC,L,PT,E=IS_BACKEND:1]

     #RewriteCond %{ENV:IS_BACKEND} 1
     #RewriteCond %{REQUEST_URI} ^.*?/wp-admin/?.*$
     #RewriteRule ^.* - [F,L]

     # works
     RewriteCond %{REQUEST_URI} ^(.*?)/login\??(.*)$
     RewriteRule ^(.*?/?)login(\??.*)$ $1wp-login.php$2 [NC,L,PT,E=IS_LOGIN:1]

     # END

    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /wordpress/index.php [L]
</IfModule>

# END WordPress

更新 ------------------ 所以,我找到了一个可行的解决方案:

# BEGIN

RewriteCond %{REQUEST_URI} ^.*?/?backend/?.*$
RewriteRule ^(.*?/?)backend(/?.*)$ $1wp-admin$2 [L,E=IS_BACKEND:1,END]

RewriteCond %{ENV:REDIRECT_IS_BACKEND} !^1$
RewriteCond %{REQUEST_URI} ^.*?/?wp-admin/?.*$
RewriteRule ^.* - [F,L]

RewriteCond %{REQUEST_URI} ^.*?/login\??.*$
RewriteRule ^(.*?/?)login(\??.*)$ $1wp-login.php$2 [L,E=IS_LOGIN:1]

RewriteCond %{ENV:REDIRECT_IS_LOGIN} !^1$
RewriteCond %{SCRIPT_FILENAME} ^.*?/wp-login.php$
RewriteRule ^.* - [F,L]

# END

但现在我坚持使用 Cookie 路径 - 因为它已定义并且似乎没有钩子,也许我尝试编辑 config.php

【问题讨论】:

    标签: php wordpress apache mod-rewrite url-rewriting


    【解决方案1】:

    经过一段时间的测试和修改,我找到了一个似乎可以正常工作的解决方案:

    # BEGIN of our changes
    <IfModule mod_rewrite.c>
    RewriteCond %{REQUEST_URI} ^.*?/?backend/?.*$
    RewriteRule ^(.*?/?)backend(/?.*)$ $1wp-admin$2 [L,E=IS_BACKEND:1,END]
    
    RewriteCond %{REQUEST_URI} ^/wordpress/wp-admin/load-styles.php$ [OR]
    RewriteCond %{REQUEST_URI} ^/wordpress/wp-admin/load-scripts.php$ [OR]
    RewriteCond %{REQUEST_URI} ^/wordpress/wp-admin/admin-ajax.php$
    RewriteRule ^.* - [L,E=IS_BACKEND:1,END]
    
    RewriteCond %{ENV:REDIRECT_IS_BACKEND} !^1$    
    RewriteCond %{REQUEST_URI} ^.*?/?wp-admin/?.*$
    RewriteRule ^.* - [F,L]
    
    RewriteCond %{REQUEST_URI} ^.*?/login\??.*$
    RewriteRule ^(.*?/?)login(\??.*)$ $1wp-login.php$2 [L,E=IS_LOGIN:1]
    
    RewriteCond %{ENV:REDIRECT_IS_LOGIN} !^1$
    RewriteCond %{SCRIPT_FILENAME} ^.*?/wp-login.php$
    RewriteRule ^.* - [F,L]
    </IfModule>
    # END of our changes
    

    有关将其集成到 Wordpress 中的完整说明: (德语):https://www.sumedia-howto.de/wordpress/wordpress-urls-rewrite-zum-schutz-sensibler-dateien-und-pfade/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-23
      • 1970-01-01
      • 2016-11-20
      • 2012-12-01
      • 1970-01-01
      • 2016-04-14
      • 1970-01-01
      • 2011-11-09
      相关资源
      最近更新 更多