有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
中,它位于根目录(/
)中。
RewriteBase
,例如 RewriteBase /web
RewriteRule ^(.*)$ web/index.php/$1 [QSA,L]
但这一切都不起作用 - 它会导致内部500服务器错误。
在这种情况下如何进行适当的合并?
答案 0 :(得分:2)
此.htaccess
(在根文件夹中)应符合您的需求:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ web/index.php/$1 [QSA,L]
答案 1 :(得分:1)
如果您要将所有规则放在文档根目录(/
)中,请尝试:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /web/index.php/$1 [QSA,L]