我有以下代码:
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# If requested resource exists as a file or directory.
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^join_([A-Za-z0-9\-\_]+)/?$ /index.php?ref=$1 [L,QSA]
RewriteRule ^secure_access&u=([A-Za-z0-9\-\_]+)&p=([A-Za-z0-9\-\_]+)/?$ /index.php?a=do_login&username=$1&password=$2 [L,QSA]
RewriteRule ^earning_stats/?$ /index.php?a=earnings&type=earning&page=$1 [L,QSA]
RewriteRule ^external_funding/?$ /index.php?a=earnings&type=add_funds&page=$1 [L,QSA]
RewriteRule ^investment_stats/?$ /index.php?a=earnings&type=deposit&page=$1 [L,QSA]
RewriteRule ^affiliate_stats/?$ /index.php?a=earnings&type=commissions&page=$1 [L,QSA]
RewriteRule ^earning_stats_pz/?$ /index.php?a=earnings&type=earning&ec=11&page=$1 [L,QSA]
RewriteRule ^earning_stats_pm/?$ /index.php?a=earnings&type=earning&ec=18&page=$1 [L,QSA]
RewriteRule ^earning_stats_pa/?$ /index.php?a=earnings&type=earning&ec=43&page=$1 [L,QSA]
RewriteRule ^earning_stats_btc/?$ /index.php?a=earnings&type=earning&ec=48&page=$1 [L,QSA]
RewriteRule ^earning_stats_adv/?$ /index.php?a=earnings&type=earning&ec=56&page=$1 [L,QSA]
RewriteRule ^earning_stats_bw/?$ /index.php?a=earnings&type=earning&ec=999&page=$1 [L,QSA]
RewriteRule ^.*$ index.php [L]
我实际上将所有HTTP请求重定向到HTTPS,只要文件/目录不存在就重写URL,如果没有有效条件,最后会重定向到index.php。
但是,我想将所有404请求重定向到名为“error.php”的自定义页面,但由于上次重写规则,我无法执行此操作。 我的网站基于一个名为“index.php”的文件,其中包含所有页面,然后通过阅读GET参数“a”打印它们(只需查看3个第一次重写规则join,secure_access和earning_stats)。 所以还有许多其他页面,例如:
http://domain.com/index.php?a=logout
我的PHP脚本将其读取为:
http://domain.com/logout
无需在.htaccess上添加(预览:http://puu.sh/rnYhq/8003fa32cc.png)
这可能听起来很难或很难解释,请随时向我询问更多信息。