我有一个带有.htaccess文件的主目录,看起来像这样
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
子目录中的那个看起来与这个相同。我希望.htaccess文件要做的是重定向到每个目录中的索引文件。
因此,如果您访问 main / example ,您将被重定向到主目录中的index.php文件,但是如果您访问 main / subdirectory 您将被重定向到子目录中的index.php文件。
我已经找到了答案,但却找不到任何可行的方法。
感谢任何帮助!
答案 0 :(得分:0)
尝试
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 -d
RewriteRule ^(.+)/ $1/index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
答案 1 :(得分:0)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/ /$1/index.php [L]
此配置执行以下操作:
如果我们有这个文件
/index.php
/foo/index.php
/var/index.php
/var/boo/index.php
您要求提供以下文件
/foo/hello
你会去:
/foo/index.php
,如果您要求
/var/boo/world
你会去:
/var/boo/index.php
答案 2 :(得分:0)
您可以使用像这样的简单解决方案,无需在任何地方放置.htaccess文件
在您的主目录中放入一个.htaccess文件,保留您的代码
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
然后添加这两行
Options All -Indexes
ErrorDocument 403 http://domain.com/index.php
这两行阻止用户访问该文件夹,并返回法规403,然后将403法规重定向到主目录的index.php的地址