2012-11-08 155 views
1

我需要对我的网站进行更改,但我不想让它们进入我的真实帐户,除非我确定它们是正确的。我的帐户使用GoDaddy,根据他们的说法,我可以做到的唯一方法就是将所有文件移至另一个文件夹,并通过转到该文件夹​​来测试我的更改。而不是从网络浏览器调用Duphil.com,我使用Duphil.com/DuphilWork。在.htaccess文件中的编码不会让我留在这个文件夹中。.htaccess网站重定向

这里是编码:

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/

ErrorDocument 404 /index.php?page=404 
ErrorDocument 403 /index.php?page=403 

RewriteRule ^$ /index.php 
RewriteRule ^about/$ /index.php?page=about 
RewriteRule ^oilfield/$ /index.php?page=oilfield 
RewriteRule ^pipeline/$ /index.php?page=pipeline 
RewriteRule ^safety/$ /index.php?page=safety 
RewriteRule ^sales/$ /index.php?page=sales 
RewriteRule ^contact/$ /index.php?page=contact 
RewriteRule ^stateLicensures/$ /index.php?page=stateLicensures 
RewriteRule ^keyPersonnel/$ /index.php?page=keyPersonnel 
RewriteRule ^projectListings/$ /index.php?page=projectListings 
RewriteRule ^legal/$ /index.php?page=legal 
RewriteRule ^techDivision/$ /index.php?page=techDivision 

RewriteRule ^equipment/$ /index.php?page=equipment 
RewriteRule ^projectImages/$ /index.php?page=projectImages 
RewriteRule ^contact/(.*)/$ /index.php?page=contact&contactName=$1 

我怎样才能做到这一点?

回答

0

你做.htaccess的方式非常混乱。每个页面的规则都有一些缺点,其中最重要的是如果添加页面,则必须更新.htaccess。另一个缺点是您不能简单地添加异常,因为您必须为每个规则添加异常。然而,有一件事我们可以做的是网页改写为自身,并告诉它不应该继续改写一旦这样做:

RewriteRule ^DuphilWork/(.*)$ DuphilWork/$1 

RewriteRule ^$ /index.php 
[..] 

现在,这意味着你还必须写上网址测试网站无需重写。换句话说,他们必须是这样的:Duphil.com/DuphilWork/index.php?page=oilfield

如果你想写票友网址,在您的测试网站,以及与当前设置的唯一方法是在你的.htaccess复制几乎所有的规则,并添加DuphilWork的比赛模式,在一个重定向路径副本。

真正的解决办法当然有这样一条规则:

RewriteCondition !-f 
RewriteRule ^(.*)$ /index.php?page=$1 

然后确保正确的index.php解析该页面的字符串(现在包括确保该网页存在。它变得微不足道解决当前的问题,这种情况下,但我相信你应该能够使这项工作与我上面给的解决方案。


用我上面这涉及复制一切介绍的策略,你最终会带来一些事端摹这样的:

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/

ErrorDocument 404 /index.php?page=404 
ErrorDocument 403 /index.php?page=403 

RewriteRule ^DuphilWork/$ /DuphilWork/index.php 
RewriteRule ^DuphilWork/about/$ /DuphilWork/index.php?page=about 
RewriteRule ^DuphilWork/oilfield/$ /DuphilWork/index.php?page=oilfield 
RewriteRule ^DuphilWork/pipeline/$ /DuphilWork/index.php?page=pipeline 
RewriteRule ^DuphilWork/safety/$ /DuphilWork/index.php?page=safety 
RewriteRule ^DuphilWork/sales/$ /DuphilWork/index.php?page=sales 
RewriteRule ^DuphilWork/contact/$ /DuphilWork/index.php?page=contact 
RewriteRule ^DuphilWork/stateLicensures/$ /DuphilWork/index.php?page=stateLicensures 
RewriteRule ^DuphilWork/keyPersonnel/$ /DuphilWork/index.php?page=keyPersonnel 
RewriteRule ^DuphilWork/projectListings/$ /DuphilWork/index.php?page=projectListings 
RewriteRule ^DuphilWork/legal/$ /DuphilWork/index.php?page=legal 
RewriteRule ^DuphilWork/techDivision/$ /DuphilWork/index.php?page=techDivision 

RewriteRule ^DuphilWork/equipment/$ /DuphilWork/index.php?page=equipment 
RewriteRule ^DuphilWork/projectImages/$ /DuphilWork/index.php?page=projectImages 
RewriteRule ^DuphilWork/contact/(.*)/$ /DuphilWork/ index.php?page=contact&contactName=$1 

RewriteRule ^$ /index.php 
RewriteRule ^about/$ /index.php?page=about 
RewriteRule ^oilfield/$ /index.php?page=oilfield 
RewriteRule ^pipeline/$ /index.php?page=pipeline 
RewriteRule ^safety/$ /index.php?page=safety 
RewriteRule ^sales/$ /index.php?page=sales 
RewriteRule ^contact/$ /index.php?page=contact 
RewriteRule ^stateLicensures/$ /index.php?page=stateLicensures 
RewriteRule ^keyPersonnel/$ /index.php?page=keyPersonnel 
RewriteRule ^projectListings/$ /index.php?page=projectListings 
RewriteRule ^legal/$ /index.php?page=legal 
RewriteRule ^techDivision/$ /index.php?page=techDivision 

RewriteRule ^equipment/$ /index.php?page=equipment 
RewriteRule ^projectImages/$ /index.php?page=projectImages 
RewriteRule ^contact/(.*)/$ /index.php?page=contact&contactName=$1 
+0

该编码的.htaccess做我的别人所以这就是为什么我不知道它是什么要做。我是否需要更改实时版本.htaccess中提到的代码或工作文件夹中的代码,或者我是否甚至需要工作文件夹中的代码?谢谢。 – BurtG

+0

您的.htaccess应该位于您的脚本想要从*重定向*的目录中,因此这将成为现场版本中的一个。 – Jasper

+0

我试过这些改变,没有任何工作,我认为主要是因为我不知道我在做什么。我可能不得不在我的PHP文件中尝试一些更改,而不是使用.htaccess。 – BurtG