我的网址现在是:
localhost/about/index.php
想要的结果:
localhost/about.php
但我希望它显示为localhost/about/
,而不必将其放入about文件夹。
我对如何使用.htaccess
文件执行此操作缺乏经验。
示例3:该网站具有难以处理的URL。如何清理它 当URL冗长而复杂时,就会出现这种情况。
以下面的网址为例:
http://example.com/results.php?products=produce&type=fruit&species=apple
与URL在提供正确内容方面一样有效,对消费者而言并不是很难忘。 URL重写将允许您将URL转换为更简单和更清晰的内容:
http://example.com/produce/fruit/apple
为了实现这一目标,我们需要.htaccess
文件中的以下行(您可以在.htaccess
文件中添加所需数量的部分):
RewriteEngine on
RewriteRule ^(meat|produce|dairy)/([^/.]+)/([^/.]+)$ results.php?products=$1&type=$2&species=$3
现在解释一下:
首先^(caret)
启动表达式。
(meat|produce|dairy)
:如果我们想限制可以输入的选项,我们可以指定我们将接受的唯一值:在这种情况下,各种杂货。如果输入了除这三个关键字中的一个之外的任何内容,则不会进行URL重写。
([^/.]+)
表示除了插入符之后的字符之外,还可以在正斜杠之间写入任何内容,在本例中为正斜杠或句点。
results.php?products=$1&type=$2&species=$3
:将提取括号中的每个值,然后将其应用于表达式替换部分中的较长URL。 $1
表示第一个参与者,$2
,第二个,$3
,第三个。
答案 0 :(得分:1)
要从URL中删除.php,您可以使用此...
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]
只需将其保存为应用程序根目录中的文件名.htaccess即可。
这样您就可以使用localhost/about
以及localhost/about.php
两者都有效。