php - 将文件从 sub 转移到根目录后,seo url 无法打开

标签 php .htaccess seo

我当前的 seo url 在子目录上工作正常但是在尝试在根目录上使用脚本后链接不会打开

这是articles.php代码

$url = $_SERVER['REQUEST_URI'];
$url = str_replace('/', '', $url);

$stmt = $db->prepare("SELECT * FROM articles WHERE seo_url = :seo_url");
$stmt->bindParam(':seo_url', $url, PDO::PARAM_STR);
$stmt->execute();
$row = $stmt->fetch();
$cou = $stmt->rowCount();

if($cou <1){
        header("Location: error.php");
        exit();
}

我的 htaccess 是

RewriteEngine On

# SEO URL Settings

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)\?*$ articles.php?$1 [L,QSA] 

上面的代码将我重定向到 error.php 页面

之前在子文件夹上是这样的

$url = $_SERVER['REQUEST_URI'];
    $url = str_replace('/test/', '', $url);

RewriteBase /test/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)\?*$ articles.php?$1 [L,QSA] 

最佳答案

您正在使用以下代码替换请求 uri 中的“/”:

$url = $_SERVER['REQUEST_URI'];
$url = str_replace('/', '', $url);

您应该尝试仅从 uri 中删除最后一个 '/'(如果 seo_url 字段值存储为数据库中的“/some-dir/yourpage/”),例如:

$url = rtrim($url, '/');

关于php - 将文件从 sub 转移到根目录后,seo url 无法打开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39574598/

相关文章:

linux - Chmod 777 文件和文件夹。还是看不到?

php - htaccess 重写规则冲突

.htaccess - URL重写如何添加额外条件

php - Laravel 5.4 Cookie 值

php - 使用php将excel文件中的数据导入到mysql表中

javascript - 如何使我的 .htaccess 文件允许 Safari 和其他浏览器打开 GZIP?

html - 如何在wordpress网站中添加强SEO信息?

php - 使用php将数据插入mysql

PHP DOM 和 JavaScript 以及 HTML 实体

joomla - 组件搜索结果的自定义 URL