2012-08-02 30 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>