2013-03-21 32 views
0

我真正的網址是:的FollowSymLinks的.htaccess重寫規則404錯誤

www.mysite.com/site/index.php

我需要:

www.mysite.com/home.html

我寫在.htaccess:

Options +FollowSymlinks 
    RewriteEngine On 
    RewriteRule (.*)/home.html$ /site/index.php 

但去的404

任何幫助嗎?

的傳統知識。

UPDATE:

有一個域實際上是沒有任何影響:www.my-site.com?

UPDATE:

我保存www.my-site.com和更改此:

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^home\.html$ site/index.php 
</IfModule> 

但沒有工作。

回答

1

RewriteRule指令的圖案部分請求的路徑上匹配(例如,/我的/請求/)時,主機和查詢字符串不包括在內。還要注意的是,在一個的.htaccess方面領先的斜線不包含在模式

Options +FollowSymlinks 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^home\.html$ site/index.php 
+0

我改變了這一點: 選項+的FollowSymLinks RewriteEngine敘述 在 RewriteBase/ 重寫規則^家\ html的$網站/ index.php文件 但是,沒有工作 文件的.htaccess是保存www.mysite.com/site/ – 2013-03-21 22:31:30

0

您在評論中說:

文件的.htaccess是保存www.mysite.com/site/

這意味着,你可以訪問當前模式www.mysite.com/site/anything/home.html將被改寫爲www.mysite.com/site/site/index.php

您應該將.htaccess置於文檔根目錄a nd,如已經建議,從模式中刪除此部分:(.*)/

0

此網站由godaddy.com託管,服務器在Windows上通過IIS運行,因此,該規則必須寫入web.config文件中。

<configuration> 
<system.webServer> 
    <rewrite> 
    <rules> 
    <rule name="Imported Rule 1"> 
     <match url="^home\.html$" ignoreCase="false" /> 
     <action type="Rewrite" url="site/index.php" /> 
    </rule> 
    </rules> 
</rewrite> 
</system.webServer> 
</configuration> 

令人難以置信!

0

在我的服務器,我在Apache中

AllowOverride None改變了httpd.confAllowOverride All

而努力吧!