【发布时间】:2016-07-01 08:05:49
【问题描述】:
在我的 htaccess 文件中,我添加了一条规则,将 url/abc/xyz 重定向到 url/abc/xyz.php,所以现在即使我尝试访问 url/abc.php,它也会将我重定向到 url/abc/
帮我解决这个问题。我现在的代码:
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^GET\s([^.]+)\.php\s [NC]
RewriteRule ^ %1 [R,L]
## To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*?)/?$ $1.php [L]
我想要的是:
url/abc.php & url/abc 应该转到 url/abc.php
url/abc.php/#x & url/abc/#x 应该转到 url/abc.php/#x
【问题讨论】:
-
403 禁止错误,因为它试图访问不存在的位置。
-
全部位于根目录。 domain.com/abc 导致domain.com/abc.php 正确。问题在于 domain.com/abc.php/#x 被重定向到 domain.com/abc/#x
-
为什么要让 url/abc.php 指向 url/abc.php?为什么不直接消除在地址栏中使用 .php 的可能性?
-
是的,我将完全消除 .php,但我拥有它以便 url/abc/#x(或 url/abc.php/#x)被重定向到 url/abc.php/# x
-
您确定收到的是 403 错误而不是 404 错误吗?