微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法解决 htaccess 重写问题seo-friendly URL

如何解决无法解决 htaccess 重写问题seo-friendly URL

嗨!首先,我对 Stack Overflow 很陌生,所以如果我做错了什么,请见谅。

我需要一些有关 .htaccess 的帮助,以便为 SEO 友好 URL 重写规则。 基本上它是一个博客,我得到的博客文章数据不是带有 $id 而是带有 sef URL 参数。 我知道搜索引擎不喜欢 URL 参数,因为很难识别什么是什么。

“sef”参数根据我显示博客文章内容动态变化。我想获取“=”之后的部分并删除参数名称(?sef)并在其间放置一个“/”,看起来像这样。

当前 URL 结构(带有“sef”参数)

https://www.dent.com.tr/gelismeler.PHP?sef=dis-tedavisi-nasil-genclestirir

我想把这个网址改写为

https://www.dent.com.tr/gelismeler/dis-tedavisi-nasil-genclestirir

我从 gelismeler.PHP 中的 MysqL 数据库动态检查/设置页面内容数据

if (isset($_GET['sef'])) {
$sef = $_GET['sef'];

$sql = "SELECT * FROM posts WHERE sef='$sef'";
$query = MysqLi_query($conn,$sql);
$row = MysqLi_fetch_assoc($query);

$title = $row["title"];
$desc = $row["description"];
$img = $row["image"];

我尝试了无数变种,但实际上我从未成功:(

有人可以帮我吗?

非常感谢!

我的 current.htacces 文件

ErrorDocument 404 /404.PHP
RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(([A-Za-z0-9\-]+/)*[A-Za-z0-9\-]+)?$ $1.PHP

RewriteCond %{HTTP_HOST} !^www.dent.com.tr$
RewriteRule ^(.*)$ http://www.dent.com.tr/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(PHP|html) [NC]
RewriteRule ^index\.PHP$ http://www.dent.com.tr/ [R=301,L]

解决方法

就这样吧:

ErrorDocument 404 /404.php
Options -MultiViews
RewriteEngine On
RewriteBase /

# add www.
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE]

# remove index.php or index.html
RewriteCond %{THE_REQUEST} \s/+index\. [NC]
RewriteRule ^index\.(html?|php)$ / [R=301,NC]

# external redirect from actual URL to pretty one
# 2 parameter redirect rule
RewriteCond %{THE_REQUEST} \s/+gelismeler\.php\?category=([^&]+)&sef=([^\s&]+)\s [NC]
RewriteRule ^ /gelismeler/%1/%2? [R=301,NE]

# 1 parameter redirect rule
RewriteCond %{THE_REQUEST} \s/+gelismeler\.php\?sef=([^\s&]+)\s [NC]
RewriteRule ^ /gelismeler/%1? [R=301,NE]

# internal forward from pretty URL to actual one
# 2 parameters rewrite
RewriteRule ^gelismeler/([\w-]+)/([\w-]+)/?$ gelismeler.php?category=$1&sef=$2 [L,QSA,NC]

# 1 parameter rewrite
RewriteRule ^gelismeler/([\w-]+)/?$ gelismeler.php?sef=$1 [L,NC]

# add .php internally
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。