很抱歉,如果我复制一些关于.htaccess的讨论。但我没有找到我的问题的直接答案。 他们来了: 1.我试图从主目录和子目录中的URL中删除index.php。 到目前为止,我已经达到了以下两个规则(一个用于主目录,另一个用于子目录):
# removes index.php (in public_html)
RewriteRule ^index.php$ / [QSA,R]
# removes index.php (in all directories exept public_html)
RewriteRule ^(.*?)/index\.php /$1 [R=301,R]
有没有办法用一条通用规则制作它?
我还有很多子目录索引文件,其中不同的前缀以-index结尾: bla-index,foo-index,prefix-index等。我想使用某种正则表达式将它们全部用作DirectoryIndex。 以下规则删除了prefix-index.php
#removes prefix-index.php (in all directories exept public_html)
RewriteRule ^(.*)/(.*)index.php /$1 [R=301,R]
这正是我想要的,但现在我有403错误,因为 htaccess说:
DirectoryIndex index.php
我为DirectoryIndex尝试了不同的正则表达式但没有成功。请帮忙!
P.S。我只能使用htaccess而不是httpd.conf
答案 0 :(得分:0)
您可以使用站点根目录中的此代码删除index.php
.htaccess:
DirectoryIndex index.php
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{THE_REQUEST} \s(.*)index\.php[?\s] [NC]
RewriteRule ^ %1 [L,R=301,NE]