【问题标题】:How to add some url rewrite to WHMCS?如何向 WHMCS 添加一些 url 重写?
【发布时间】:2021-01-18 13:27:48
【问题描述】:

我正在尝试设置一个经典的 .htaccess 文件来重写 url。

目前我正在尝试简单地将login.php 重写为login

我尝试过使用以下 .htacess 文件:

RewriteEngine on
RewriteBase /

# Not Directory
RewriteCond %{REQUEST_FILENAME} !-d

# Not file
RewriteCond %{REQUEST_FILENAME} !-f

# Not Link ?? No Need.
#RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^login/$        login.php               [L]

当我尝试访问 http://MYIP/login 时,这给了我以下信息

http://MYIP/https://MYIP/login/

我还尝试使用以下内容:

### BEGIN - WHMCS managed rules - DO NOT EDIT BETWEEN WHMCS MARKERS ###
<IfModule mod_rewrite.c>
RewriteEngine on

# RewriteBase is set to "/" so rules do not need updating if the
# installation directory is relocated.  It is imperative that
# there is also a RewriteCond rule later that can effectively get
# the actual value by comparison against the request URI.
#
# If there are _any_ other RewriteBase directives in this file,
# the last entry will take precedence!
RewriteBase /


# Redirect directories to an address with slash
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$  $1/ [R]

# Send all remaining (routable paths) through index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Determine and use the actual base
RewriteCond $0#%{REQUEST_URI} ([^#]*)#(.*)\1$
RewriteRule ^.*$ %2index.php [QSA,L]

</IfModule>
### END - WHMCS managed rules - DO NOT EDIT BETWEEN WHMCS MARKERS ###



RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)([^/])$        /$1$2/ [L,R=301]

RewriteRule     ^/login/$           ^/login.php$    [L]

我得到了同样的结果。

在 WHMCS 的管理面板下,我将 url 重写设置为基本 URL。

在私人导航中打开时出现错误 404。

【问题讨论】:

  • 您在点击 URL http://localhost:80/login 时是否遇到任何错误?
  • @RavinderSingh13 Nop 没有错误,当我在私人导航中打开它时出现错误 404

标签: apache .htaccess mod-rewrite url-rewriting whmcs


【解决方案1】:

您是否可以使用您展示的示例尝试以下操作。请确保在测试 URL 之前清除浏览器缓存。看起来您已经为不存在的目录和不存在的文件设置了 1 条规则,因此请将您的登录规则放在它之前。我这里只放了从&lt;IfModule mod_rewrite.c&gt;&lt;/IfModule&gt;的htaccess规则文件。

### BEGIN - WHMCS managed rules - DO NOT EDIT BETWEEN WHMCS MARKERS ###
<IfModule mod_rewrite.c>
RewriteEngine on
# RewriteBase is set to "/" so rules do not need updating if the
# installation directory is relocated.  It is imperative that
# there is also a RewriteCond rule later that can effectively get
# the actual value by comparison against the request URI.
#
# If there are _any_ other RewriteBase directives in this file,
# the last entry will take precedence!
RewriteBase /

# Redirect directories to an address with slash
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$  $1/ [R]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^login/?$  login.php$ [NC,L]

# Send all remaining (routable paths) through index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Determine and use the actual base
RewriteCond $0#%{REQUEST_URI} ([^#]*)#(.*)\1$
RewriteRule ^.*$ %2index.php [QSA,L]

</IfModule>
### END - WHMCS managed rules - DO NOT EDIT BETWEEN WHMCS MARKERS ###

【讨论】:

    【解决方案2】:

    经过@RavinderSingh13 的一些搜索和帮助,我得到了以下工作.htaccess

    ### BEGIN - WHMCS managed rules - DO NOT EDIT BETWEEN WHMCS MARKERS ###
    <IfModule mod_rewrite.c>
    RewriteEngine on
    # RewriteBase is set to "/" so rules do not need updating if the
    # installation directory is relocated.  It is imperative that
    # there is also a RewriteCond rule later that can effectively get
    # the actual value by comparison against the request URI.
    #
    # If there are _any_ other RewriteBase directives in this file,
    # the last entry will take precedence!
    RewriteBase /
    
    # Redirect directories to an address with slash
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^(.+[^/])$  $1/ [R]
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    
    #Change
    RewriteRule ^login$ ./login.php [L,NC]
    
    
    # Send all remaining (routable paths) through index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    # Determine and use the actual base
    RewriteCond $0#%{REQUEST_URI} ([^#]*)#(.*)\1$
    RewriteRule ^.*$ %2index.php [QSA,L]
    
    </IfModule>
    ### END - WHMCS managed rules - DO NOT EDIT BETWEEN WHMCS MARKERS ###
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-02
      • 2014-09-11
      • 2015-04-14
      相关资源
      最近更新 更多