Apache 如何使用htaccess在同一台服务器上拥有开发和生产环境

Apache 如何使用htaccess在同一台服务器上拥有开发和生产环境,apache,.htaccess,Apache,.htaccess,我试图让我的开发和生产运行在同一台服务器上。我有一个htaccess文件,它应该会将您发送到其中一个。所以所有的URL都是www.website.com/dev/。。。将您发送到“开发”文件夹。所有其他URL都会将您发送到生产文件夹 这部作品制作得很好 当我使用seo友好的URL时,开发端不起作用 www.website.com/dev/index.php工作 www.website.com/dev/register/不起作用 这是我的密码 RewriteEngine on Options +F

我试图让我的开发和生产运行在同一台服务器上。我有一个htaccess文件,它应该会将您发送到其中一个。所以所有的URL都是www.website.com/dev/。。。将您发送到“开发”文件夹。所有其他URL都会将您发送到生产文件夹

这部作品制作得很好

当我使用seo友好的URL时,开发端不起作用

www.website.com/dev/index.php工作

www.website.com/dev/register/不起作用

这是我的密码

RewriteEngine on
Options +FollowSymlinks
RewriteBase /

#don't let them access the .htaccess file
RewriteRule ^\.htaccess$ - [F]

#don't let people refer to our pictures
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?website.com/.*$ [NC]
RewriteRule \.(gif|jpg|png)$ http://www.website.com/index.php [R,L]

RewriteRule ^(dev/)(.*) devFolder/$2 [L]
RewriteRule ^(.*)$ productionFolder/$1 [L]
RewriteRule ^.*$ http://www.website.com/index.html [NC,L]
在每个子文件夹中都有一个.htaccess文件,它们都是相同的。下面是一个例子,说明了这些代码中的重写代码是什么样子的

#registration
RewriteRule ^[rR]egister$ register_login.php [L]
RewriteRule ^[rR]egistered$ register_login.php [L]

这就是最终对我有用的东西

在根文件夹中

RewriteRule ^(dev/)(.*) devFolder/$2 [L]
RewriteRule ^(.*)$ productionFolder/$1 [L]
在子文件夹中,.htaccess文件是相同的,除了dev文件夹中的rewrite base

RewriteBase /dev/

为什么不定义一个具有单独子域的开发虚拟主机,以便可以保持域后的所有URL相同?在开发文件夹和生产文件夹中是否有htaccess文件?是的,我在开发文件夹和生产文件夹中都有.htaccess文件。它们目前是相同的。我将在我尝试过的问题中举例说明,如果我将dev.htaccess中的重写规则更改为RewriteRule^[rR]egister$dev/register_login.php[L],那么事情就会正常工作。有没有办法在顶部执行一次,或者我必须为每个条目执行一次?在dev子文件夹中重写base/dev/。htaccess似乎可以解决我的问题。