0

我想要一个 .htaccess 文件,它可以在我的 localhost 开发环境和我的托管生产站点上正确重写。现在,我必须为我工作的每个站点保留两个单独的文件副本。我希望能够同步这两个站点,而不会破坏它们的任何一个 .htaccess 文件。

下面是 .htaccess 文件,我在评论中使用了一些伪代码来演示我想要做什么。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php|images|robots\.txt|css)

## IF the url looks like its from localhost then use this rule
  ## The incoming url might look like: http://localhost/mysite/about
    RewriteRule ^(.*)$ /mysite/index.php/$1 [L]
## Else do this rewrite
  ## The incoming url might look like: http://www.mysite.com/about
    RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule> 

这是我的服务器配置:

开发:windows上的xampp

制作:Dreamhost

4

3 回答 3

1

我对此有点生疏,但我认为:

RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]

#Do your live stuff here

RewriteCond %{HTTP_HOST} ^localhost$ [NC]

#Do your local stuff here
于 2009-10-08T19:46:46.707 回答
0

使用 RewriteCond 检查 %{HTTP_HOST}。例如:

RewriteCond %{REMOTE_HOST}  ^localhost$
于 2009-10-08T19:45:10.423 回答
0

我只会为您的开发环境使用一个单独的虚拟主机,其设置与您的生产服务器具有相同的设置。

只需将另一个<VirtualHost>容器添加到您的httpd.confhttpd-vhosts.conf配置文件并调整设置:

<VirtualHost *:80>
    ServerName example.com.local
    DocumentRoot /absolute/filesystem/path/to/your/localhost/mysite
</VirtualHost>
于 2009-10-08T19:58:24.750 回答