.htaccess网站重定向

.htaccess网站重定向,.htaccess,.htaccess,我需要对我的网站进行更改,但我不想在我的live帐户上进行更改,直到我确定这些更改是正确的。我的帐户是GoDaddy的,根据他们的说法,我唯一能做的就是把我所有的文件移到另一个文件夹,并通过转到那个文件夹来测试我的更改。我使用Duphil.com/DuphilWork,而不是从web浏览器调用Duphil.com。.htaccess文件中的编码不允许我保留在此文件夹中 以下是编码: Options +FollowSymLinks RewriteEngine on RewriteBase / E

我需要对我的网站进行更改,但我不想在我的live帐户上进行更改,直到我确定这些更改是正确的。我的帐户是GoDaddy的,根据他们的说法,我唯一能做的就是把我所有的文件移到另一个文件夹,并通过转到那个文件夹来测试我的更改。我使用Duphil.com/DuphilWork,而不是从web浏览器调用Duphil.com。.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
我怎样才能做到这一点呢?

您使用.htaccess的方式相当混乱。每个页面的规则都有许多缺点,其中最重要的一点是,如果添加页面,则必须更新.htaccess。另一个缺点是不能简单地添加异常,因为必须为每个规则添加异常。但是,我们可以做的一件事是将页面重写为自身,并告诉它在重写之后不应该继续重写:

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

RewriteRule ^$ /index.php
[..]
现在,这意味着您仍然必须在测试站点上编写URL,而无需重写。换句话说,它们必须是这样的:Duphil.com/DuphilWork/index.php?page=field

如果您也想在测试站点中编写fancier URL,当前设置的唯一方法就是复制.htaccess中的所有规则,并将DuphilWork添加到匹配模式中,并在其中一个副本中重定向路径

当然,真正的解决方案只有一条这样的规则:

RewriteCondition !-f
RewriteRule ^(.*)$ /index.php?page=$1
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
然后确保index.php正确解析该页面字符串,现在包括确保该页面存在。在这种情况下,解决您当前的问题就变得微不足道了。然而,我相信你应该能够通过我上面给出的解决方案来实现这一点

使用我上面描述的复制所有内容的策略,您将得到如下结果:

RewriteCondition !-f
RewriteRule ^(.*)$ /index.php?page=$1
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

htaccess编码是由其他人完成的,所以我不知道它要做什么。我是否需要更改您在live version.htaccess或工作文件夹中提到的编码,或者我甚至需要工作文件夹中的编码?谢谢。你的.htaccess应该在你的脚本想要重定向的目录中,所以这就是实时版本中的目录。我已经尝试了更改,但没有任何效果,我想主要是因为我不确定我在做什么。我可能必须尝试在PHP文件中进行一些更改,而不是使用.htaccess。@user1810533:是否希望能够将重写的URL也用于测试副本?是的,我也希望将它们用于测试副本。