如何获取斜线后的url最后一部分作为php中的获取值

问题描述 投票:0回答:2

我的网址看起来像:

http://localhost/event_manage?slug=hello
,最后一个值就像
hello
因此,当我转到
index.php
时,该页面位于
http://localhost/event_manage/hello
中并显示错误,因为没有名为
hello
的文件夹。 但我想要这个
hello
就像我去时获取价值
http://localhost/event_manage/hello

我在

.htaccess
文件中尝试过:

RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?slug=$1

但是还是显示错误,无法传值!

php apache .htaccess url mod-rewrite
2个回答
1
投票
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?slug=$1

但是错误是

http://localhost/event_manage/hello

上述规则假设您的 URL 以尾部斜杠结尾,但您的示例并非如此,因此它将无法匹配并导致 404(因为它不会将请求重写为

index.php
)。

应该是:

RewriteRule ^([\w-]+)$ index.php?slug=$1 [L]

\w
(单词字符)只是一个简写字符类,与
[a-zA-Z0-9_]
相同。

如果添加更多指令,则需要

L
标志。

这假设

.htaccess
index.php
位于
/event_manage
子目录内。


旁白:

http://localhost/event_manage?slug=hello

由于

/event_manage
是物理目录,因此该 URL 应为
http://localhost/event_manage/?slug=hello
(目录名称后带有尾部斜杠)。如果省略尾部斜杠,则 mod_dir 将在尾部斜杠后附加 301 重定向。


0
投票

这对我有用:

RewriteEngine 开启
RewriteRule ^([a-zA-Z0-9_-]+)$index.php?slug=$1
© www.soinside.com 2019 - 2024. All rights reserved.