htaccess友好的URL重写规则

时间:2016-08-25 16:33:55

标签: php apache .htaccess mod-rewrite url-rewriting

我最近更改了我的托管,我需要一个htaccess重写规则来处理我的文件。我尝试了很多例子,但没有人能真正适用于我的案例。我从来没有真正做过htaccess,而且在我的老主机上我并不真正需要任何它只是工作,但事实并非如此。基本上我想要我的PHP文件没有扩展名并且像目录一样对待。例如,我有这样的网址:

  

www.domain.com/file1/ {id} / {nick}

例如:

  

www.domain.com/myfile1/104/username

     

www.domain.com/myotherfile/455/nick

在这种情况下,File1是一个PHP文件,{id}​​和{nick}是可更改的。我在我的整个网站上有这个结构用于许多其他PHP文件等。所以如果可能的话,我想要所有文件的一个通用规则。我尝试使用htaccess来删除php扩展等,但我得到的只是404错误。浏览器中的URL也应保持友好状态,不带PHP扩展。在我的情况下,如果我手动重写我的URL: www.domain.com/file1.php/{id}/{nick}它有效,但我不想改变我网站上的所有链接等。所以我想要的是隐藏PHP扩展并将PHP文件视为目录。

谢谢

1 个答案:

答案 0 :(得分:2)

您可以在站点根目录中使用此单一和通用前端控制器规则.htaccess:

AcceptPathInfo On
DirectoryIndex index.php

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([\w-]+)/(.*)$ $1.php/$2 [L]