我是 PHP 和 Apache 的初学者。我正在尝试对我的网站使用 URL 重写,它可以具有以下 URI。
1. http://localhost:8080/home
2. http://localhost:8080/dell
对于第一个 URI,有可用的home.php文件,我使用以下重写规则编辑了 .htaccess 文件。
RewriteRule ^([^\.]+)$ $1.php [NC]
第二个 URI 是动态的 - 意味着没有可用于处理请求的dell.php 。所以我在 RewriteCond 之后写了。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ list.php?page=$1
所以总的来说,我的 .htaccess 文件是
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([^\.]+)$ $1.php [NC] [N]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ list.php?page=$1
因此,当我请求localhost:8080/home时, home.php 得到了适当的响应,但是当我请求localhost:8080/dell时,响应了一个错误
“在此服务器上找不到请求的 URL /dell.php。”
我认为只有第一个 RewriteRule 优先,第二个甚至不被 Apache 服务器读取。更改顺序也不起作用。我的问题是我应该使用什么 RewriteRule(s) 可以在这两种情况下工作 - PHP 文件存在和不存在?
感谢您的意见和指导。
里特什