.htaccess 中除了一个文件夹之外的 RewriteCondition?

问题描述 投票:0回答:2

我想做以下事情:

我有一个 htaccess 文件,可以让每个请求都通过

index.php
。如果我没记错的话这就是所谓的引导? (我以前没有这样做过)。

我想在网站的根目录中创建一个子目录作为“测试”网站,因为我无法添加子域。我需要一个 htaccess rewritecond,它将

teszt
文件夹下的任何请求重定向到同一文件夹中的
index.php

因此,如果我输入

example.com/[anything]
,我会将数据发送到根目录中的
index.php
,如果我输入
example.com/teszt/[anything]
,则数据需要发送到
teszt/index.php

这是我的 htaccess 文件:

IndexIgnore *
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
apache .htaccess
2个回答
0
投票

您可以在根文件夹中的 htaccess 中使用这些规则:

RewriteEngine On
#rewrite /subfolder/foobar to /subfolder/index.php
ReweriteRule !subfolder/index\.php /subfolder/index.php [L]
#rewrite /foobar to /index.php
RewriteRule !index\.php /index.php [L]

上面的规则还将您现有的文件重写为index.php。如果您不想重写文件,只需在规则中添加一个条件即可

RewriteCond %{REQUEST_FILENAME} !-f
.


0
投票

虽然这是一篇很旧的帖子,但像我这样的人可能会发现它有用:

.htaccess
应放置在 parentroot 文件夹中,并应包含以下代码才能正常工作

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ /teszt/index.php?url=$1 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ /index.php?url=$1 [QSA,L]

请注意,对于

RewriteRule
,子目录
/
teszt
 之前需要有 
index.php?url=$1

感谢CBroe

© www.soinside.com 2019 - 2024. All rights reserved.