0
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*)\.html$ fetch.php?id=$1

私はこれを htaccess ファイルに入れていますが、うまく動作しますが、ID を取得する代わりにこれを書き直す方法があるかどうかを知りたいです # 代わりにカテゴリとタイトルを取得できるか、何かをする必要がありますこのような

RewriteRule (.*)/(.*)/(.*)\.html$ fetch.php?id=$1&category=$2&title=$3

また、これが私がしなければならないことである場合、タイトルを変更してスペースを入れず、その間にダッシュのみを入れるにはどうすればよいですか? URL はスペースが嫌いだと聞きました。私は他のどこかで、スペースが「-」または「_」に変換されてページに読み込まれたが、SQLで読み込まれるように戻されたphpコードを使用したことを読みました。私の状況について詳しく知る必要がある場合はお知らせください。ありがとう。

アップデート!

RewriteRule (.*)/(.*)/(.*)\.html$ fetch.php?id=$1&category=$2&title=$3

これは htaccess ルールです

<a href="<?php echo $row_getDisplay['id']; ?>/<?php echo $row_getDisplay['category']; ?>/<?php echo urlencode($row_getDisplay['title']); ?>">

それは私のリンクです..このメソッドは、スペースなしでid/category/titleでプルアップしますが、cssや画像は表示されません。それが私のfetch.phpがそれを引っ張っている方法なので、IDで引っ張っています。設定方法がわからないので、カテゴリとタイトルで引っ張っています。

4

2 に答える 2

0

このメソッドでは、スペースを入れずにid / category / titleでプルアップしますが、cssや画像は表示されません。IDでプルしているのは、fetch.phpがそれをプルしているためです。設定方法がわからないため、カテゴリとタイトルでプルしています。

これはおそらく、すべてのリンクが相対的であり、ベースURIが(つまり)から/something.html(つまり/)に/something/foo/bar.html変更され/something/foo/たため、すべての相対リンクが壊れているためです。これをページのヘッダーに追加してみてください。

<base href="/">
于 2012-08-14T17:38:44.583 に答える
0

これはあまり拡張できないため、これを行うことはお勧めしません。次のことを試してみてください。

htaccess に以下を追加します。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* fetch.php/%{REQUEST_URI} [QSA,L]

これにより、URL 全体が path_info 環境変数に入れられ、バックエンド コードで使用できるようになります。

RewriteCond パーツは、要求されたファイルが実際に存在しない場合にのみ URL が書き換えられるようにします。

于 2012-08-14T13:17:16.250 に答える