.htaccess隐藏网址中的子目录

时间:2019-05-13 09:25:20

标签: .htaccess mod-rewrite url-rewriting

寻找答案,但找不到解决我特定问题的答案。

我的网站的经理位于/manager/php下,希望从网址中删除“ php”。

例如https://example.com/manager/php/topkek.php将变成https://example.com/manager/topkek.php

对此进行了尝试,但可能由于无限重定向导致内部服务器错误

Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^manager/(.+)$ /manager/php/$1 [L]

1 个答案:

答案 0 :(得分:1)

您的规则会导致无限次重写循环,因为您的模式^manager/(.+)$也与替换字符串/manager/php/$1匹配。您需要对其进行修复,以使该模式无法与目标路径匹配。您可以在正则表达式中排除/php路径以纠正错误。

 Options +FollowSymlinks
 RewriteEngine on
 RewriteBase /
 RewriteRule ^manager/((?!php).+)$ /manager/php/$1 [L]

或者您可以使用RewriteCond指令排除目标路径

Options +FollowSymlinks
 RewriteEngine on
 RewriteBase /
 RewriteCond %{REQUEST_URI} !^/manager/php 
 RewriteRule ^manager/(.+)$ /manager/php/$1 [L]