【发布时间】: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