簡體   English   中英

無法解決 htaccess 重寫問題(對 seo 友好的 URL)

[英]Can't resolve htaccess rewrite issue (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

我想將此 url 重寫為

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,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=$1&sef=$2 [L,QSA,NC]

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM