寻找答案,但找不到解决我特定问题的答案。
我的网站的经理位于/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]
答案 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]