2014-03-13 147 views
1

我正在使用ExpressionEngine作爲我的網站的CMS。我已經創建了下面的一個.htaccess:爲什麼我的網站有我的網址?已更改.htaccess

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    # Removes index.php from ExpressionEngine URLs 
    RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC] 
    RewriteCond %{REQUEST_URI} !/system/.* [NC] 
    RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L] 

    # Directs all EE web requests through the site index file 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ /index.php?/$1 [L] 

    RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
    RewriteCond %{HTTP_HOST} ^www.gsmastersinc.com$ [NC] 
    RewriteRule ^(.*)$ http://gsmastersinc.com/$1 [R=301,L] 
</IfModule> 

爲什麼我所有的網址我的網站有一個?在他們中?防爆。 myurl /?/接觸。

你可以在這裏看到我在說什麼:http://gsmastersinc.com,然後點擊任何導航鏈接。懸停時,只有在點擊後才顯示?。

我必須有?在第13行/index.php或鏈接被破壞後,我得到了404。

我一直在尋找一個答案整個上午,但所有出現的都與.NET或類似的東西有關。

感謝你的規則

回答

1

更改爲了:

RewriteEngine On 
RewriteBase/

RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
RewriteCond %{HTTP_HOST} ^www.gsmastersinc.com$ [NC] 
RewriteRule ^(.*)$ http://gsmastersinc.com/$1 [R=301,L] 
# Removes index.php from ExpressionEngine URLs 
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC] 
RewriteCond %{REQUEST_URI} !/system/.* [NC] 
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L] 

# Directs all EE web requests through the site index file 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php?/$1 [L] 

總體保持你的301個規則之前內部重寫規則。

+0

男人,我不確定除了順序以外有什麼不同,但你的解決方案完美地工作。非常感謝! –

+0

是的,由於301規則出現在底部,它重定向了內部重寫的URL。 – anubhava

相關問題