2016-08-25 130 views
-1

我最近更改我的主机,我需要一个htaccess重写规则为我的文件。我尝试了很多例子,但没有人真正为我的案例工作。我从来没有在htaccess中表现出色,并且在我的旧主机上我并不需要任何能够工作的东西,但这不是。基本上我希望我的PHP文件没有扩展名并且像目录一样处理。因此,例如我有一个网址,像这样的:htaccess友好的URL重写规则

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

因此,例如:

www.domain的.com/myfile1/104 /用户名

www.domain.com/myotherfile/455/nick

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

感谢

回答

2

您可以使用网站根目录的.htaccess这个单一的和通用的前端控制器规则:

AcceptPathInfo On 
DirectoryIndex index.php 

RewriteEngine On 
RewriteBase/

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

感谢。我试过,但我得到了这个:没有指定输入文件。当我试图访问一个URL如:www.domain.com/file/123/user – StudioArena

+0

这条规则对我的Apache工作正常。在你的网站根目录下用这个规则测试它.htaccess – anubhava

+0

我在根目录下的htaccess中只有这个,并且不起作用。这很奇怪,但我现在正在寻找一个解决方案几个小时,没有任何工作。 – StudioArena