1

私は、基本的にプロファイル システムであるプライベート プロジェクトに取り組んでいます。現在、URL のフォーマットを改善する方法を試しています。

現時点では、次のような URL を使用しています。

-> http://example.com/overview
-> http://example.com/profile/?name=foo
-> http://example.com/jobs/?name=foo

概要とプロファイルはどちらも、データベースから取得する必要がある PageID を保持する単一の index.php ファイルを含む、私の Web サイト上のディレクトリです。

今、私の目標は、URLを次のようにフォーマットすることです:

-> http://example.com/fooまたはhttp://example.com/profile/foo
-> http://example.com/foo/jobsまたはhttp://example.com/profile/foo/jobs

とにかくMOD_REWRITEでこれを行うことはありますか?

これは、元の URLがhttp://example.com/?character=foo/jobsのようなもので、 http://example.com/get_var/directory のようになることを意味します

「 mod_rewrite get variables 」を検索して、Stackoverflow と Google で調査を行いました。しかし、私が見たいと思っていることは何もないように見えました。

敬具
Larssy1

4

1 に答える 1

1

スラッシュ間の URI の一部を抽出し、それを URL パラメーターとして追加するには、式を使用して([^/]+)、次の文字までのすべての文字をキャプチャし/ます$1

RewriteEngine On
RewriteRule ^profile/([^/]+)/([^/]+/?)?$ profile/$2?character=$1 [L]

上記のルールは、例から続くものを動的にキャプチャします。つまり、 orFooが続いていても、 として追加されます。それが必要なく、静的である場合は、次のようにキャプチャする必要はありません。/jobs/other/somethingelse/profile/somethingelse?character=Foo/jobs$2

RewriteEngine On
# Don't dynamically capture what comes after the first variable group...
RewriteRule ^profile/([^/]+)/jobs$ profile/jobs?character=$1 [L]
于 2013-05-05T23:54:50.847 に答える