我正在尝试使用漂亮的网址。但它会转到404.php 我不知道我的.htaccess有什么问题。我是这个漂亮的新人
的.htaccess
RewriteEngine on
RewriteRule ^([0-9]+)/$ test.php?id=$1
# not a file
RewriteCond %{REQUEST_FILENAME} !-f
# not a directory
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .? /404.php [L]
在我的test.php中
这是我test.php中唯一的代码
if(isset($_GET['id'])){
$id = $_GET['id'];
echo $id;
}
但它没有打印。
我指向我的浏览器
http://localhost/myprojectfolder/test/1
我项目的结构
myporjectfolder
- index.php
- .htaccess
- test.php
提前谢谢。
答案 0 :(得分:2)
我认为你有几个问题。您指向的是http://localhost/myprojectfolder/test/1
,但您的规则中没有/test
。你只能接受数字。你也没有在URL的末尾使用斜杠,但是你的规则说它应该在那里也不匹配,除非你把它作为可选。
此外,您还要将不存在的文件定向到404.php。你正在尝试做的漂亮的URL也是不存在的文件。这可能会导致问题。
无论如何,请按照这样的方式尝试使用您的规则
http://localhost/myprojectfolder/test/1
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^test/([0-9]+)/?$ test.php?id=$1 [L]
或删除似乎不必要的/ test文件夹
http://localhost/myprojectfolder/1
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9]+)/?$ test.php?id=$1 [L]