允许通过 htaccess 访问开发站点

Allowing access to dev site via htaccess

我继承了一个 Prestashop 网站,并为所有必需的重定向设置了 htaccess 文件。我想允许访问 dev 子域,但 htaccess 不断重定向到主站点。我试图以我有限的知识和网络研究允许访问,但是当我上传编辑后的文件时出现 500 错误。

原来重写是这样

<IfModule mod_rewrite.c>
<IfModule mod_env.c>
SetEnv HTTP_MOD_REWRITE On
</IfModule>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.mysitename.com$
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url= [QSA,L]
# Dispatcher
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{HTTP_HOST} ^www.mysitename.com$
RewriteRule ^.*$ - [NC,L]
RewriteCond %{HTTP_HOST} ^www.mysitename.com$
RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]
#If rewrite mod isn't enabled
ErrorDocument 404 /index.php?controller=404

我试过在开头添加

RewriteCond %{HTTP_HOST} ^www.mysitename.com$

这些行

RewriteCond %{HTTP_HOST} ^dev\.mysitename.com$
RewriteRule ^/(.*)         http://dev.mysitename.com/index.php/ [L, QSA]

但我一直收到 500 错误并且无法进行实验,因为它会使网站脱机。

您的新行将在现有的 RewriteCond 和 RewriteRule 对之间进行,并破坏了它们的语法。尝试将您的行移至 RewriteCond %{HTTP_HOST} ^www.mysitename.com$ 行上方。

这样说:

<IfModule mod_rewrite.c>
<IfModule mod_env.c>
SetEnv HTTP_MOD_REWRITE On
</IfModule>

RewriteEngine on

RewriteCond %{HTTP_HOST} ^www\.mysitename\.com$
RewriteRule . - [E=REWRITEBASE:/]

RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url= [QSA,L]

# Dispatcher
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteCond %{HTTP_HOST} ^www\.mysitename\.com$
RewriteRule !(?:^|/)index\.php$ %{ENV:REWRITEBASE}index.php [NC,L]
</IfModule>

#If rewrite mod isn't enabled
ErrorDocument 404 /index.php?controller=404