允许通过htaccess访问开发者网站

时间:2016-03-22 14:55:36

标签: apache .htaccess mod-rewrite prestashop-1.6

我继承了一个prestashop网站,并为所有必需的重定向设置了htaccess文件。我想允许访问dev子域,但htaccess会继续重定向到主站点。我试图允许使用我有限的知识和可靠的朋友google访问,但是当我上传编辑过的文件时出现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=$1 [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/$1 [L, QSA]

但我只是不断收到500错误并且无法进行实验,因为它会使网站脱机。当我试图了解有关重写的更多信息时,任何帮助都非常感激

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

这样做:

<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=$1 [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