如何解决htaccess重定向到公用文件夹,并带有斜杠
这是我的.htaccess文件:
RewriteEngine On
DirectoryIndex index.php
#Set 404 and 505 pages
ErrorDocument 404 https://example.com/404/
ErrorDocument 500 https://example.com/500/
#Ignore AJAX requests
RewriteCond %{REQUEST_METHOD} ^(POST)$
RewriteCond %{HTTP:X-Requested-With} XMLHttpRequest [NC]
RewriteRule ^ - [L]
#Redirect 404 to correct page
RewriteCond %{REQUEST_URI} ^/404/$
RewriteRule ^(.*)$ /public/404.php [L]
#Redirect 500 to correct page
RewriteCond %{REQUEST_URI} ^/500/$
RewriteRule ^(.*)$ /public/500.php [L]
#Rewrite to /public folder
RewriteRule ^$ public/index.php [L]
RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
#Hide .php extension
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]
/ admin /还有一个.htaccess文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]
它工作正常,除非在一种情况下。
正确的情况:
example.com/page -> Just shows the page
example.com/admin/ -> Works fine.
但是,如果输入example.com/admin(不带斜杠),它将重定向到/ public / admin /。 我想在我的网址中隐藏该公众。
如何始终获得一个干净的URL,该URL始终隐藏/ public。
解决方法
如果#Rewrite to /public folder
也是目录,请在/public/admin/
行之前插入此重定向规则,以在事件末尾添加斜杠:
# add a trailing slash if public/$1 is a directory
RewriteCond %{DOCUMENT_ROOT}/public/$1 -d
RewriteRule ^(.*?[^/])$ %{REQUEST_URI}/ [L,R=301,NE]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。