3

SEFURLをサポートするWebサイトを開発しています。私はサーバーサイド言語としてPHPを使用しています。私はhtaccessの基本的なコードがどのように機能するかを知っています。しかし、問題は、php getリンクを書き直したい場合、このように両方のリンクをhtaccessに配置する必要があることです。

RewriteRule ^sign-in$ index.php?view=signin
RewriteRule ^register$ index.php?view=register
RewriteRule ^jobs$ index.php?id=2 

手動で書き換えルールを追加する代わりに、htaccessとurlの特定のエイリアスを使用してURLを自動化する方法はありますか?joomlaのようなもの?私はjoomlahtaccessが特定のエイリアスとどのように接続するかを理解しようとしていました。しかし、それがどのように機能するのかまだ理解できませんでした。joomlahtaccessが記事のエイリアスとどのように関係しているのか理解できません。助けてください。前もって感謝します。

4

1 に答える 1

3

id外観と外観に違いがない場合view(この例では、registerはaviewであり、jobsid=2です)、どちらか一方を個別に実行する必要があります。

ビューを「自動化」するには、次のようにします。

RewriteEngine On

# all id's here:
RewriteRule ^jobs$ index.php?id=2 [L] 
RewriteRule ^something-else$ index.php?id=3 [L]
RewriteRule ^another$ index.php?id=4 [L]

# this will do all views
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?view=$1 [L]

編集:エイリアスの外部セットを介してこれらのマッピングを行う必要がある場合は、RewriteMapディレクティブを確認する必要があります。マップを設定するには、サーバーまたは仮想ホストの構成にアクセスする必要がありますが、ルールはhtaccessファイルにとどまることができます。

次のような「joomla_maps.txt」というテキストファイルがあるとします。

jobs id=2
another id=3
sign-in view=sign-in
register view=register

等...

RewriteMap(vhost / server configで)設定することにより、そのマッピングを使用できます。

RewriteMap joomla txt:/path/to/joomla_maps.txt

そして後であなたのhtaccessで:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?${joomla:$1} [L]

ドキュメントを調べてRewriteMap、スクリプトの実行やdbmハッシュマップの使用など、他の種類のマップの例をいくつか入手してください。

于 2012-07-31T18:04:43.607 に答える