2016-05-31 10 views
2

私はこの質問を投稿するためのそのようなツールのように感じますが、私の人生のために、私は問題を解決する方法を見つけることができません。 (私も読み取り/前の投稿を試してみたが、どれも私を助けていない)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); 
+0

SQLを「SELECT * FROM blogs」に変更してみてください。publish = '$ publish' AND slug = '$ slug' " –

+0

@CaelanGrgurovic良いニュースは、私が404を取得していないということです。ブラウザ内のURLが、データベースからコンテンツを引き出すわけではありません。 – Soletwosole

+0

ブラウザがhtaccessファイルで有効になるまでに時間がかかることがあります。キャッシュをクリアするかブラウザを切り替えて試してみてください! :) –

答えて

1

([0-9a-zA-Z]+)にURLを変更する必要があり

RewriteEngine On 
RewriteRule ^([^/]*)\.html$ /article.php?slug=$1 [L] 

pretty-urlをキャプチャしません。これを([A-Za-z0-9-]+)に変更し、その行の末尾に[L]を追加します。

また、正しく処理するために、2番目と3番目のコールをRewriteEngine Onに削除してください。

+0

これは働いた!!!ありがとうございました! – Soletwosole

0

質問に対して謝罪決して!あなたが立ち往生しているなら、私たちは助けようとします。あなたのhtaccessファイルに必要なもの

は以下の通りです:グループはハイフンを許可していないためhttps://mywebsite.com/pretty-url.html

+0

お返事ありがとうございます。私はページの拡張子を完全に削除しようとしていました。 .htmlを追加しないでください。 Mike Rockettのコメントは私を助けました。助けてくれてありがとう。本当にありがとうございます。 :) – Soletwosole

+1

問題はありません@ソレツォソール、私たちはいつも.htmlも削除するルールを書くことができます。しかし、問題が今ソートされている場合は、それは素晴らしいです! :) – Lag

関連する問題