0

有2个.htaccess文件,一个在文件夹中/,第二个在/web文件夹中。

在根文件夹 ( /) 中,.htaccess看起来像

RewriteEngine on
RewriteRule    ^$ web/    [L]
RewriteRule    (.*) web/$1 [L]

/web文件夹中,.htaccess看起来像

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,L]

它完美地工作。

我想要的只是合并这些条件并将它们放在.htaccess根目录(/)中的单个文件中。

1 - 我尝试添加RewriteBase,比如

RewriteBase /web

2 - 我试图替换知道 web 文件夹的条件

RewriteRule ^(.*)$ web/index.php/$1 [QSA,L]

3 - 我尝试简单地将配置从一个文件附加到另一个文件,并稍作改动。

但这些都不起作用 - 它给出了内部 500 服务器错误。

在这种情况下应该如何进行适当的合并?

4

2 回答 2

2

.htaccess(在根文件夹中)应该符合您的需求:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ web/index.php/$1 [QSA,L]
于 2013-10-15T14:34:17.233 回答
1

如果您将所有规则放在文档根目录 ( /) 中,请尝试:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /web/index.php/$1 [QSA,L]
于 2013-10-15T14:33:59.167 回答