私はこの質問を投稿するためのそのようなツールのように感じますが、私の人生のために、私は問題を解決する方法を見つけることができません。 (私も読み取り/前の投稿を試してみたが、どれも私を助けていない)Htaccess Mod RewriteかなりのURLのために働いていません
私はhttps://mywebsite.com/article.php?slug=pretty-url私がいる問題は$_GET
方法はそう、スラグを認識していないです
https://mywebsite.com/article/pretty-urlにをオンにしようとしていますそれは私に404エラーを与えている。スラグは間違いなく私のデータベースにあります。なぜ私はそれを取得できないのか分からない。
以下は私のhtaccessコードと私のPHPコードです。
htaccessのコード:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
# Redirect www urls to non-www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.mywebsite\.com [NC]
RewriteRule (.*) https://mywebsite.com/$1 [L]
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://mywebsite.com/$1 [L]
ErrorDocument 404 /404.php
#Pretty URL for Blog
RewriteRule ^article/([0-9a-zA-Z]+) article.php?slug=$1
#Rewrite for certain files with .php extension
RewriteRule ^about$ about.php
RewriteRule ^services$ services.php
RewriteRule ^portfolio$ portfolio.php
RewriteRule ^blogs$ blogs.php
RewriteRule ^tutorials$ tutorials.php
RewriteRule ^contact$ contact.php
RewriteRule ^privacy-policy$ privacy-policy.php
RewriteRule ^terms-of-service$ terms-of-service.php
RewriteRule ^sitemap$ sitemap.php
</IfModule>
PHPコードarticle.phpページ上:
//Get the blog. Only blogs that are published
$slug = $_GET['slug'];
$publish = intval(1);
//Query the database
$sql = "SELECT * FROM blogs WHERE publish = $publish AND slug = $slug";
//Execute the query
$stmt = $db->query($sql);
$row = $stmt->fetch(PDO::FETCH_ASSOC);
SQLを「SELECT * FROM blogs」に変更してみてください。publish = '$ publish' AND slug = '$ slug' " –
@CaelanGrgurovic良いニュースは、私が404を取得していないということです。ブラウザ内のURLが、データベースからコンテンツを引き出すわけではありません。 – Soletwosole
ブラウザがhtaccessファイルで有効になるまでに時間がかかることがあります。キャッシュをクリアするかブラウザを切り替えて試してみてください! :) –