2016-11-02 2 views
1

私はPHPとMySQLで少しのCMSを作成しました。 NGINXの書き換えを有効にしようとしましたが、動作しません。理由を理解できません。nginx書き換えは何もしない

(例)私は最後

書き換え^ /リスト/(.*)$ /listing.html?listing=$1このルールを使用しようとするページに

http://www.example.com/cars.php?id=bmw

を持っています。

https://www.nginx.com/blog/creating-nginx-rewrite-rules/

しかし、それは動作しません。

リライト^/cars /(.*)$ /cars.php?id=$1 last;

私はhttp://www.example.com/cars.php?id=bmw

は、私はPHPのドキュメントにURLアンカーを変更する必要があり、同じ醜いURLを取得しますか?

<a href="cars.php?id='.$row['name'].'"> BWM </a> 

から

<a href="cars/'.$row['name'].'"> BWM </a> 

へ 私はそれが動作を行います。 しかし、私はコンタクトページにBMW側からクリックしたときに、私は

http://www.example.com/cars/contact 

この奇妙なURLを取得するには、私が間違って何をすべきか、誰のアイデアを持って?

答えて

1

ドキュメントでは、スラッシュを付けずにURIを指定しています。これは、現在のページとの相対的なものとみなされることを意味します。

かなりのURI(例:/cars/bmw)を使用したいと思いますが、ディレクトリパスのように見える埋め込み/が含まれている点が異なります。このディレクトリパスは、先頭に/が含まれていないURIを構築するために使用されます。

解決策は、あなたのすべてのURIに先頭に/という曖昧さがないようにすることです。例えば

<a href="/cars/'.$row['name'].'"> BWM </a> 
<a href="/contact"> Contact Page </a> 
関連する問題