0

たとえば、次のような検索エンジンに適した URL を生成したい:- 以下のようなリンクがあるとします。

http://www.apexengineeringproject.com/display_project.php?id=AP112&title=ADVANCED%20OFFICE%20AUTOMATION%20SYSTEM%20USING%20GSM%20AND%20MICROCONTROLLER

私はそれがしたいだけです

http://www.apexengineeringproject.com/display_project.php/AP112/ADVANCED%20OFFICE%20AUTOMATION%20SYSTEM%20USING%20GSM%20AND%20MICROCONTROLLER

私は .htaccess で書き換えを試みましたが、リンクが seo フレンドリーに変換されるとパラメーターを取得する方法を取得できなくても成功しませんでした。この状況で誰か助けてください。

編集:

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} \/index\.php [NC] 
RewriteRule (.*) apexengineeringproject.com [R=301,L] 
RewriteRule ^display_project.php/([^/]+)/([^/]+) /display_project.php?id=$1&title=$2 [NC] 

これは私の .htaccess ファイルの内容ですが、問題はページが読み込まれることですが、スタイルや JavaScript は読み込まれません。

4

1 に答える 1

0

ほとんどの場合、相対ファイル名を使用してスクリプト/スタイル ファイルを参照しています。ブラウザーは、相対パスを取得するために、クエリ文字列の前の最後のスラッシュまでのディレクトリ パス全体を使用します。

たとえば、書き換え前のページを使用する場合。

http://www.apexengineeringproject.com/display_project.php 

...そして でスクリプトを探しscripts/test.js、ブラウザはそれを取得します。

http://www.apexengineeringproject.com/scripts/test.js

書き換え後のページを使用する場合

http://www.apexengineeringproject.com/display_project.php/AP112/ADVANCED%20OFFICE%20AUTOMATION%20SYSTEM%20USING%20GSM%20AND%20MICROCONTROLLER

...相対パスscripts/test.jsをフェッチすると、ファイルがフェッチされます。

http://www.apexengineeringproject.com/display_project.php/AP112/scripts/test.js

...おそらく存在しません。

この問題を解決するには、スクリプト パスと css パスをサーバー ルートからの相対パスにします。つまり、 を使用せずscripts/test.jsに を使用します/scripts/test.js

編集:少しハックだと思いますが、いくつかのファイルをルートに書き直すことができます。これをテストすることはできませんが、必要なものに近いはずです。

RewriteCond %{REQUEST_URI} \.(jpg|css|png|js)$ [NC]
RewriteRule display_project.php/[^/]*(.*) $1 [NC]
于 2013-07-30T13:38:39.847 に答える