0

セットアップ: Apache と PHP を実行する通常の Unix Web サーバーを所有しています。期待どおりに PHP スクリプトを提供しています。

現在の状況:すべてのリンクは、パラメーターを使用した典型的な PHP のリンクのように見えますwebsite.net/index.php?show=article&do=new

私が欲しいもの: URL の見た目や内容に関係なく、URL を再マッピングするための mod_rewrite ルール。

例: website.net/article/new index.php にリダイレクトし、etc$_SERVER['REQUEST_URI']を含める必要があります/article/new/が、これに限定されず、固定パターン (*n 変数) はありません。他のすべての作業は PHP で行われます (検証など)。

これまでの私の努力: Google をよく使い、多くの例を試しました。しかし、いくつかは固定パターンで見つかっただけで、一部はサイト全体を壊すことさえありました.

もう 1 つの問題: mod_rewrite を試しているときに、js および css ファイルへのパスが壊れていることに気付きました。私は相対パスを使用します。それらはindex.phpに相対的なサブフォルダーにあります

<script src="js/included_file.js"></script>

<link href="css/included_file.css" rel="stylesheet"">

4

1 に答える 1

0

RewriteCondition を使用して-fファイルを除外できます。

RewriteCond %{REQUEST_FILENAME} !-f          #exclude files
RewriteRule ^(.*) index.php?__path=$1 [QSA]  #catch everything

ディレクトリも保持したい場合は、-d.

URL を呼び出すと、次のようになります。

website.net/path/to/file?query=string&foo=bar

あなたは(あなたの$_GET)を得るでしょう:

__path = "/path/to/file"
query = "string"
foo = "bar"

使用しないでください$_REQUEST。これは非標準であり、混合物$_GETであり$_POST、非常に奇妙なバグにつながる可能性があります。

于 2013-09-11T11:26:50.603 に答える