隐藏URL中的文件夹,但如果URL中只有域,则不会

时间:2014-04-01 04:43:16

标签: apache .htaccess url mod-rewrite

我想在网址中隐藏'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  
RewriteRule (?!^main/)^(.*)$ /main/$1 [L,NC]

它工作正常,但在URL中只有'my_domain.com'的情况下没有 然后我得到“你没有权限访问/在这台服务器上使用main。”因为网址可能已更改为“my_domain.com/main /”

如果仅在URL中存在多个域时才能将其修改为有效?

1 个答案:

答案 0 :(得分:0)

您可以使用:

RewriteCond %{THE_REQUEST} \s/+main/([^\s]+) [NC]  
RewriteRule ^ %1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f  
RewriteRule ^((?!^main/).+)$ /main/$1 [L,NC]