Regex 重定向到公用文件夹,并支持尾部斜杠
这是我的.htaccess文件:Regex 重定向到公用文件夹,并支持尾部斜杠,regex,apache,.htaccess,mod-rewrite,Regex,Apache,.htaccess,Mod Rewrite,这是我的.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
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]
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]
/admin/还有一个.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]
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,该URL始终隐藏/public。如果
/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]
我找到了这个解决方案,并尝试了它,但它仍然显示/public,并且带有一个尾随斜杠,它会转到