【发布时间】:2023-03-28 06:22:01
【问题描述】:
我有两个文件,一个是 php handler.php 文件,第二个是 htaccess,在没有 .(dot) 的情况下可以正常工作,但是当我们将 dot 添加到它的只是 echo handler.php
book/handler.php 存在于 book 目录中
<?php
echo $_GET['bookid'];
?>
.htaccess
RewriteEngine On
# i added 2 line one for book/abc and secon for book/abc/
RewriteRule ^book/([a-z-A-Z-0-9-.]+)$ book/handler.php?bookid=$1 [L,R=301]
RewriteRule ^book/([a-z-A-Z-0-9-/]+)/ book/handler.php?bookid=$1 [L,R=301]
当我提交 localhost/book/handler.php?bookid=somthing.php 它返回 handler.php
查看此网址进行演示 link 当我添加 book/somthing 或 book/somthing.php 它返回 handler.php
【问题讨论】:
-
用户是否将
localhost/book/handler.php?bookid=somthing.php放入浏览器或其内部重定向从一个内部网址到另一个?因为通常推荐给用户用户友好的url,请确认一次。
标签: regex apache .htaccess mod-rewrite url-rewriting