我想用 .htaccess 删除 php/html 扩展我有这个代码:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php
</IfModule>
但它并没有修改url,即当前url就是这个例子:
域/文件夹/home.php
我希望它留下来
域/文件夹/主页
您要做的就是建立友好的URL,如果您搜索一下,google上有很多教程,但是,我将尝试向您解释一下:
首先,友好 URL 的示例如下所示:
按照相同的示例,一个不友好的 URL 将是这样的:
知道了这一点,在 .htaccess 文件中创建友好的 URL,我们可以这样做:
让我们稍微解释一下代码:首先,我们有一行
RewriteEngine on
,它激活了 url 中的修改。在第二行和第三行中RewriteCond
,第一行阻止规则匹配目录,第二行阻止规则匹配文件。最后我们有了这条线
RewriteRule
,我们将按部分进行:首先我们有符号
^
,这意味着表达式开始。然后我们有
profile/(.+)
,这意味着在url之后必须有一个值,即(.+)
:这个值是在 $ 之后确定的,你可以看到它是文件的名称,带有扩展名和所有内容,但还有一个附加项,即
$1
.$1
将是我们要访问的值的名称,可能还有更多可以添加的值,格式如下:$2
,$3
... 等。您添加的每个值都等效(.+)
于前面表达式中的 a。因此,作为最后一个示例,假设我们想直接访问我们虚构角色 pepe 的个人资料图片。友好的 URL 是这样的:
不友好的 Url 是这样的:
因此,应该在 htaccess 中编写的规则是这样的:
这样我们就可以使用友好的URL来访问了。