无法解决 htaccess 重写问题(seo 友好 URL)
Can't resolve htaccess rewrite issue (seo-friendly URL)
您好!首先,我是 Stack Overflow 的新手,所以如果我做错了什么,请原谅。
我需要一些关于 .htaccess 的帮助来重写 SEO 友好的规则 URL。
基本上它是一个博客,我得到的博客 post 数据不是带有 $id,而是带有 sef URL 参数。
我知道搜索引擎不喜欢 URL 参数,因为很难识别什么是什么。
“sef”参数根据我显示的博客post内容动态变化。我想获取“=”之后的部分并删除参数名称(?sef) 并在其间放置一个“/”,如下所示。
当前 URL 结构(带有“sef”参数)
https://www.dent.com.tr/gelismeler.php?sef=dis-tedavisi-nasil-genclestirir
我想将这个url重写为
https://www.dent.com.tr/gelismeler/dis-tedavisi-nasil-genclestirir
我 check/set 从 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\-]+)?$ .php
RewriteCond %{HTTP_HOST} !^www.dent.com.tr$
RewriteRule ^(.*)$ http://www.dent.com.tr/ [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,L,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,L,NE]
# 1 parameter redirect rule
RewriteCond %{THE_REQUEST} \s/+gelismeler\.php\?sef=([^\s&]+)\s [NC]
RewriteRule ^ /gelismeler/%1? [R=301,L,NE]
# internal forward from pretty URL to actual one
# 2 parameters rewrite
RewriteRule ^gelismeler/([\w-]+)/([\w-]+)/?$ gelismeler.php?category=&sef= [L,QSA,NC]
# 1 parameter rewrite
RewriteRule ^gelismeler/([\w-]+)/?$ gelismeler.php?sef= [L,QSA,NC]
# add .php internally
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/.php -f
RewriteRule ^(.+?)/?$ .php [L]
您好!首先,我是 Stack Overflow 的新手,所以如果我做错了什么,请原谅。
我需要一些关于 .htaccess 的帮助来重写 SEO 友好的规则 URL。 基本上它是一个博客,我得到的博客 post 数据不是带有 $id,而是带有 sef URL 参数。 我知道搜索引擎不喜欢 URL 参数,因为很难识别什么是什么。
“sef”参数根据我显示的博客post内容动态变化。我想获取“=”之后的部分并删除参数名称(?sef) 并在其间放置一个“/”,如下所示。
当前 URL 结构(带有“sef”参数)
https://www.dent.com.tr/gelismeler.php?sef=dis-tedavisi-nasil-genclestirir
我想将这个url重写为
https://www.dent.com.tr/gelismeler/dis-tedavisi-nasil-genclestirir
我 check/set 从 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\-]+)?$ .php
RewriteCond %{HTTP_HOST} !^www.dent.com.tr$
RewriteRule ^(.*)$ http://www.dent.com.tr/ [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,L,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,L,NE]
# 1 parameter redirect rule
RewriteCond %{THE_REQUEST} \s/+gelismeler\.php\?sef=([^\s&]+)\s [NC]
RewriteRule ^ /gelismeler/%1? [R=301,L,NE]
# internal forward from pretty URL to actual one
# 2 parameters rewrite
RewriteRule ^gelismeler/([\w-]+)/([\w-]+)/?$ gelismeler.php?category=&sef= [L,QSA,NC]
# 1 parameter rewrite
RewriteRule ^gelismeler/([\w-]+)/?$ gelismeler.php?sef= [L,QSA,NC]
# add .php internally
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/.php -f
RewriteRule ^(.+?)/?$ .php [L]