0

私はこの単純な .htaccess ファイルを持っているので、 http://mywebsite.com/stuffRewriteRule ^([0-9a-zA-Z:_-]+)/?$ index.php?page=$1作ることができます。このhttp://mywebsite.com/stuff/is/coolのようなものが引き続き機能するように、機能を拡張して無期限に拡張したいと考えています。GET variableindex.php?page=$2&page2=$3...

もう 1 つの問題は、URL http://mywebsite.com/stuff/を入力すると、HTML がstuffフォルダーにあると認識しているように見えるため、ファイル (css、画像など) をロードしないことです。これを解決するには?

ありがとうございました

4

2 に答える 2

1

PHP を使用して URL を処理できます。たとえば、このファイルでスクリプト エントリが index.php になるとします。

$pages = $_GET['page'];
$extracted_p = explode ("/",$pages);
//and foreach extracted pages to decide what you want with it

2 番目の部分では、ベース URL 変数を設定し、スクリプトの一番ヘッダーにある html ベース タグ内に配置する必要があります。

すなわち

$base_url = "http://localhost/myscript/";

htmlで

<base href="<?php echo $base_url?>" />

それだけです

于 2013-06-10T13:34:34.963 に答える
1

あなたは物事を過度に複雑にしています。これをあなたのに入れるだけ.htaccessです:

FallbackResource index.php

既存のファイルを指していないすべての要求がindex.phpルート フォルダーで処理されるようにします。次に、そのファイルで次のことを行います。

$path = explode('/', trim($_SERVER['REQUEST_URI'], '/'));

そして$path、そこから簡単に解析できます。次に例を示します。

if(!count($path))
  RenderHomepage();
elseif($path[0] == 'blog')
  RenderBlog();
else
{
  header('HTTP/1.1 404 Not Found');
  die('This page does not exist');
}

あなたの他の問題については、それはブラウザの観点からは論理的です.内部構造は見えないので、見ることができるURLに従ってフォルダロジックを実行しているだけです. これが、相対パスを決して使用してはならない理由です/static/mystyles.css。たとえば、ルートベースのアセットを指定するだけで、常に正常に解決されます。

于 2013-06-10T13:38:49.657 に答える