2012-08-02 39 views
1

在我的網站上有一些與.htaccess有關的問題。我正在嘗試爲我的網站更改網址的後綴。網址目前顯示爲:Mod重寫根本不起作用(phtml/php)

www.example.com/about.phtml 

我想刪除about.phtml並與有關所以它看起來像替換它:

www.example.com/about 

的例子我使用的是不是我所需要的網站上所以我希望我不需要經過的代碼,並指定哪個特定的頁面將其從中刪除,而是自動完成。

我試過用php代替phtml而沒有運氣。這裏是我使用的代碼:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.phtml -f 
RewriteRule ^(.*)$ $1.phtml 

任何想法我在做什麼錯在這裏?

僅供參考:我的主人是JustHost,他們允許我編輯我的.htaccess,但如果有人聽說過或有任何問題,請讓我知道,我對他們的技術支持人員說,誰也幫不了我比我能幫助自己更多。

+1

當你去'HTTP會發生什麼:// WWW .example.com的/ about'?什麼都沒發生? – 2012-08-02 22:29:37

+0

不工作已經試過了。 – 2012-08-02 22:46:41

回答

2

試試這個:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ $1.phtml [NC,L] 
+0

這對我有用,謝謝。 – 2012-08-02 22:51:18

2

這個工作對我來說:

RewriteEngine on 
RewriteRule ^/?([a-z]+)$ $1.phtml [L] 
+0

好吧,剛剛使用這個,現在它也可以!謝謝我不確定要保留哪些以及爲什麼。 – 2012-08-02 22:52:29

+0

這個答案比上面接受的版本不夠健壯,上面的答案會在重寫url之前檢查有效的文件名或目錄。我會用那個。 – Josh 2012-08-02 23:30:37

2

您可以先檢查你的重寫模式或不阿帕奇\的conf \ httpd.conf文件

請查看httpd.conf文件中的代碼

#LoadModule rewrite_module modules/mod_rewrite.so 

如果哈希值線以上存在於然後取出哈希並重新啓動Apache服務器

那麼之後你可以在你的CakePHP httaccess文件中設置下面的代碼

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME}\.phtml -f 
    RewriteRule ^(.*)$ $1.phtml [NC,L] 
</IfModule>