2011-05-21 63 views
0
2型動物種類的URI

我的網站,可以查看:禁用www.mywebsite.com/index.php/route訪問

www.mywebsite.com/magazine或www.mywebsite.com/index.php/雜誌

這是我的網站的副本,這對谷歌很不好。有人有任何想法如何禁用index.php瀏覽?

這是我的htaccess文件:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

回答

1

使用mod_rewriteRewriteRule從/index.php/magazine做一個永久重定向到/雜誌。

編輯11年5月21日上午9:40 EST 經過一番「快速」的測試,我意識到,如果youre設法將它應用到子文件夾中的文檔根目錄下(下面的規則將無法正常工作例如:www.mysite.com/test/index.php/go/somewhere)。這是因爲這樣mod_rewrite的作品,這是對Apache mod_rewrite Documentation記錄的,並說:

注:模式目錄級的匹配

不要忘記模式應用於 一個完整的每臺服務器的URL爲 配置文件。 然而,在 每個目錄配置文件, 每目錄前綴(其總是是 同一特定目錄)是 用於圖案 匹配自動移除並自動添加 之後的取代已經完成。這 功能是許多種重要的 重要 - 沒有這個,你會 總是必須匹配父 目錄,這並不總是 可能的。有一個例外:如果 替換字符串 「http://」開始,然後目錄前綴 不會被添加,和外部 重定向或代理吞吐(如果已使用標誌 P)被強制!

因此,如果您.htaccess文件是一個子目錄中,您RewriteRule變爲:

RewriteEngine On 
RewriteRule ^index\.php(/.*)$ /sub-dir-name$1 [R=301,QSA,L] 

否則,如果你從域的根重寫,那就是:

RewriteEngine On 
RewriteRule ^index.php(/.*)$ /$1 [R=301,QSA,L] 

希望能爲你服務!

+0

謝謝,這是我正在尋找,但它似乎並不容易找到良好的語法 – Siol 2011-05-21 05:05:57

+0

我添加了一些示例代碼,你可以嘗試 – 2011-05-21 05:15:27

+0

謝謝,但它沒有奏效,我把我的htaccess文件放在我的文章。 – Siol 2011-05-21 05:33:50