我有以下.htaccess重写网址,例如url.com/category/page和url.com/page,然后是PHP来设置$ _GET的变量。
问题是页面category.php只适用于url.com/category但是当我想去url.com/category/page时它会失败,因为文件category.php和文件夹类别需要存在并且因为文件夹存在它不起作用...我不确定这是否有意义,但我真的没有看到解决方法...
的.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ index.php?category=$1&page=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?page=$1 [L]
PHP
$url = '';
if (!empty($_GET['category'])) {
$url .= $_GET['category'] . '/';
}
if (!empty($_GET['page'])) {
$url .= $_GET['page'] . '.php';
} else {
$url .= "pages/home.php";
}
include $url;
答案 0 :(得分:0)
您的代码中有一个条件会将浏览器重定向到它所在的文件夹
(RewriteCond %{REQUEST_FILENAME} !-d
)。如果你删除它,它应该工作。
如果您想将其有条件地重定向到文件夹(如果存在),您可以使用PHP中的if语句进行调整。