Apache 在URL中隐藏文件夹,但如果URL中只有域,则不隐藏
我想在我的URL中隐藏文件夹“main”。因此,如果有一个类似以下的文件: my_domain.com/main/something.php 我得到: my_domain.com/something.php 我找到的最佳解决方案是:Apache 在URL中隐藏文件夹,但如果URL中只有域,则不隐藏,apache,.htaccess,url,mod-rewrite,Apache,.htaccess,Url,Mod Rewrite,我想在我的URL中隐藏文件夹“main”。因此,如果有一个类似以下的文件: my_domain.com/main/something.php 我得到: my_domain.com/something.php 我找到的最佳解决方案是: RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+main/([^\s]+) [NC] RewriteRule ^ %1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f Rewr
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+main/([^\s]+) [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (?!^main/)^(.*)$ /main/$1 [L,NC]
它可以正常工作,但当URL中只有“my_domain.com”时就不行了。然后我得到“您没有权限访问此服务器上的/main/”,因为URL可能已更改为“my_domain.com/main/” 如何修改它,使其仅在URL中存在域以外的内容时工作?您可以使用:
RewriteCond %{THE_REQUEST} \s/+main/([^\s]+) [NC]
RewriteRule ^ %1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^((?!^main/).+)$ /main/$1 [L,NC]